如何使用带有我自己的排序顺序的UITableViewController的域?

时间:2016-05-03 05:22:14

标签: uitableview realm realm-list

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

1 个答案:

答案 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()
    }
  }
}