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

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

以上是关于收到有关任何子项更改的通知的主要内容,如果未能解决你的问题,请参考以下文章

如何发送有关数据库中数据更改的通知

未收到 MS Teams 的任何更改通知

来自另一个片段的 Snackbar 回调

Linux 获取有关重点 gui 窗口更改的通知

如何获得有关SharePoint组更改的通知。

当另一个进程对文本文件进行更改时,C# 会收到通知