【发布时间】:2016-11-22 21:48:49
【问题描述】:
我在 Realm 中有一个简单的勾选列表,我使用 NotificationToken 检查数据源中的更新,然后使用以下项目更新 tableView:
class Item : Object {
dynamic var name = ""
dynamic var isTickedOff = false
dynamic var timeStamp : Date?
}
型号:
var items: Results<Item> {
get {
let results = self.realm.objects(Item.self)
let alphabetic = SortDescriptor(property: "name", ascending: true)
let tickedOff = SortDescriptor(property: "isTickedOff", ascending: true)
let timestamp = SortDescriptor(property: "timeStamp", ascending: false)
return results.sorted(by: [tickedOff, timestamp, alphabetic]).filter("isTickedOff = %@ || isTickedOff = %@", false, self.includeAll)
}
}
我的表格视图中有一个开关,用户可以在其中更改self.includeAll 属性。
在插入、删除或选择项目时(导致将它们设置为isTickedOff 或!isTickedOff)会触发通知并更新tableView。但是,即使修改了items 属性,更改self.includeAll 属性也不会触发通知。我可以在用户触发开关时包含self.tableView.reloadData(),但我希望通过通知获得更流畅的动画。
是我,谁把通知理解错了还是bug?
提前致谢!
【问题讨论】:
标签: swift realm nspredicate