我有一个“所有者”类,其列表属性为狗
class Owner: Object {
dynamic var name: String?
let list = List<RString>()
}
我在Owner
owners?.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in
updateUI()
}
问题是,每当RString
的属性发生更改,并且其中一个所有者的列表中已更改RString
时,就会触发此通知
我想要的是忽略RString对象发生的变化并避免触发通知
有没有办法像collectionChanges
中的objectChange
一样向let token2 = state.addNotificationBlock(ignoringProperties: ["noisyProp"],
block: { change in
// handle change and avoid being notified for properties we don't care about
})
添加“ignoringProperties”?还是其他任何解决方法?!
比如获取已更改属性的名称并手动忽略它?
我在Realm官方视频中看过这段代码,但无法将其复制到collectionChanges
prefix
感谢您的帮助
答案 0 :(得分:1)
传递到更新通知处理程序的RealmCollectionChange
枚举的.update
大小写仅包含查询返回的Results
中包含的任何已修改对象的索引。因此,截至目前,似乎无法阻止更新通知被特定属性触发。
作为替代方案,您可以考虑通过创建单独的Dog
对象并为其提供ownerId
属性并从所有者对象中删除dog list
属性来对数据进行不同的建模。这样,您就可以避免在修改拥有的Owner
时在Dog
查询结果上触发更新通知。