我正在使用Realm for Swift构建类似文档的模型。我的架构大致如下:
Document
|
+- root: Group
|
+- children: [Node]
+- Text: Node
+- Image: Node
+- Group: Node
例如:
Document
|
+- root
|
+- text
|
+- group
| |
| +- image
| |
| +- text
|
+- text
每当任意深度嵌套的子项发生任何变化时,我都希望收到通知,哪个对象确实已更改,因此我可以修剪表示该节点的视图树并使用最新数据重绘它
似乎观察给定RLMObject
上的更改只会通知即时属性更改,而观察RLMRealm
上的所有更改并不会报告实际更改的内容。
我是否缺少一个API? 谢谢!
答案 0 :(得分:1)
除了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