实现类似级联删除的最佳实践——Realm

5

我正在使用优秀的Realm库重构我的应用程序,以替换CoreData。 我遇到的一个问题是缺少级联删除,并且没有任何好的建议如何以另一种方式完成此重要步骤。

我的模型可以描述为

Person - idx, <RLMarray Dogs>
Dog - idx, <RLMarray Walks>
Walk - distance, time

在删除一个人及其所有相关的狗和遛狗记录时,最好的做法是什么?

是迭代所有对象吗?还是有其他方法可以获取子对象的引用?

1个回答

6

目前,您需要自行遍历所有相关对象及其相关对象,并在避免循环的同时仅通过应该级联删除的关系来删除对象。

这可以通过根据对象模型在每个涉及对象上实现递归方法(例如 cascadeDelete)来实现,该方法调用相关对象上的方法来实现。删除对象本身必须始终是最后一步,否则对象将无效且其关系将不再可访问。

此外,还可能有帮助的是知道有一个方法-\[RLMRealm deleteObjects:\],它让您删除实现NSFastEnumeration 的集合,其中包括 RLMArrayRLMResults


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接