收到有关任何子项更改的通知

问题描述 投票:0回答:1

我正在使用Realm for Swift构建一个类似文档的模型。我的架构大致如下:

Document
|
+- root: Group
   |
   +- children: [Node]
      +- Text: Node
      +- Image: Node
      +- Group: Node

例如:

Document
|
+- root
  |
  +- text
  |
  +- group
  |  |
  |  +- image
  |  |
  |  +- text
  |
  +- text 

每当任意深度嵌套的子项发生任何变化时,我都希望收到通知哪个对象确切已更改,因此我可以修剪表示该节点的视图树并使用最新数据重绘它

似乎观察给定RLMObject的变化只通知了立即的属性变化,而观察RLMRealm的所有变化并没有报告实际发生了什么变化。

是否有我缺少的API?谢谢!

ios swift realm
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.