我如何将领域与 UITableViewController 一起使用,并按我自己的排序顺序使用?
How can I use realm with UITableViewController with my own sorting order?
我目前正在 swift 使用 Realm。我正在使用 Realm 结果对象来填充 UITableViewController。 UITableViewController 具有 add/delete 功能。现在,所有这些都适用于 RealmResults。但我需要以不同的方式对结果进行排序。我注意到有一个领域列表。但是如果我开始添加或删除对象,我需要自己管理List中的对象吗?使用 Realm Query 对象,它会自动更新。在我的场景中,解决问题的最佳方法是什么?谢谢。
这是一个很好的问题!领域结果是自动更新的,并且将始终反映查询的当前状态,但排序是有限的。
对于小型数据集,对结果进行自定义排序可能是合理的,但每次更新结果时都需要重新应用排序。
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()
}
}
}
我目前正在 swift 使用 Realm。我正在使用 Realm 结果对象来填充 UITableViewController。 UITableViewController 具有 add/delete 功能。现在,所有这些都适用于 RealmResults。但我需要以不同的方式对结果进行排序。我注意到有一个领域列表。但是如果我开始添加或删除对象,我需要自己管理List中的对象吗?使用 Realm Query 对象,它会自动更新。在我的场景中,解决问题的最佳方法是什么?谢谢。
这是一个很好的问题!领域结果是自动更新的,并且将始终反映查询的当前状态,但排序是有限的。
对于小型数据集,对结果进行自定义排序可能是合理的,但每次更新结果时都需要重新应用排序。
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()
}
}
}