Как я могу использовать область с UITableViewController с моим собственным порядком сортировки?
В настоящее время я использую Realm с swift. Я использую объект результатов Realm, чтобы заполнить UITableViewController. UITableViewController имеет возможности добавления / удаления. Прямо сейчас все это работает с RealmResults. Но мне нужно отсортировать результаты по-другому. Я заметил, что есть список областей. Но если я начну добавлять или удалять объекты, нужно ли мне самим управлять объектами в списке? С объектом Realm Query он автоматически обновляется. В моем сценарии, что было бы лучшим способом решить проблему? Благодарю.
1 ответ
Это отличный вопрос! Результаты области автоматически обновляются и всегда отражают текущее состояние запроса, но сортировка ограничена.
Для небольших наборов данных может быть целесообразно предусмотреть пользовательскую сортировку по результатам, но сортировку необходимо будет повторно применять каждый раз при обновлении результатов.
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()
}
}
}