0

我目前正在快速使用 Realm。我正在使用 Realm 结果对象来填充 UITableViewController。UITableViewController 具有添加/删除功能。现在,所有这些都适用于 RealmResults。但我需要以不同的方式对结果进行排序。我注意到有一个领域列表。但是如果我开始添加或删除对象,我是否需要自己管理列表中的对象?使用 Realm Query 对象,它会自动更新。在我的情况下,解决问题的最佳方法是什么?谢谢。

4

1 回答 1

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()
    }
  }
}
于 2016-05-03T11:01:22.590 回答