收到有关任何子项更改的通知
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收到有关任何子项更改的通知相关的知识,希望对你有一定的参考价值。
我正在使用Realm for Swift构建一个类似文档的模型。我的架构大致如下:
Document
|
+- root: Group
|
+- children: [Node]
+- Text: Node
+- Image: Node
+- Group: Node
例如:
Document
|
+- root
|
+- text
|
+- group
| |
| +- image
| |
| +- text
|
+- text
每当任意深度嵌套的子项发生任何变化时,我都希望收到通知哪个对象确切已更改,因此我可以修剪表示该节点的视图树并使用最新数据重绘它
似乎观察给定RLMObject
的变化只通知了立即的属性变化,而观察RLMRealm
的所有变化并没有报告实际发生了什么变化。
是否有我缺少的API?谢谢!
答案
除了RLMObject和RLMRealm之外,您还可以观察集合的变化。将通知块添加到集合属性Document.root.children。您还可以获取/查询Node类型的RLMObjects,并向RLMResults对象添加通知块。
有关更多信息,请参阅https://realm.io/docs/objc/latest#collection-notifications。
一个限制是您不知道对象中的哪个属性导致通知触发,只有哪个对象发生更改。关于这个问题有一个开放的GitHub问题:https://github.com/realm/realm-cocoa/issues/3485
以上是关于收到有关任何子项更改的通知的主要内容,如果未能解决你的问题,请参考以下文章