我目前正在使用Realm和swift。我正在使用Realm结果对象来填充UITableViewController。 UITableViewController具有添加/删除功能。现在,所有这些都适用于RealmResults。但我需要以不同的方式对结果进行排序。我注意到有一个领域列表。但是,如果我开始添加或删除对象,我是否需要在列表中自己管理对象?使用Realm Query对象,它会自动更新。在我的场景中,解决问题的最佳方法是什么?感谢。
答案 0 :(得分:0)
这是一个很好的问题!领域结果是自动更新的,并且将始终反映查询的当前状态,但排序是有限的。
对于小型数据集,在结果上提供自定义排序可能是合理的,但每次更新结果时都需要重新应用排序。
class MyViewController: UIViewController {
var sortedResults = [Person]()
var notificationToken: NotificationToken? = nil
override func viewDidLoad() {
super.viewDidLoad()
let realm = try! Realm()
let results = realm.objects(Person).filter("age > 5")
notificationToken = results.addNotificationBlock { [weak self] _ in
self?.sortedResults = results.sort { a, b in
/* custom sorting here */
return a > b
}
self?.updateUI()
}
}
}