核心数据指导方针建议您使用逆模型建立关系。那里没有问题。如何处理核心数据保留周期
有趣的是,如果你加载了一个对象A,它与B具有多对多的关系,并且走过对象图形,那么最终会产生一个保留周期,并且内存永远不会被释放。
对于简单的对象图,您可以只调用refreshObject:mergeChanges:on来重新对对象进行故障,以便关系不再是强引用。
如果你有一个复杂的对象图,虽然这是一种痛苦,因为你需要在你触及的每个对象上调用它。在使用核心数据时,这似乎是一个非常重要的考虑事项,但在Apples文档中只有一个关于此主题的段落。
我只是想知道其他人如何处理这个?长时间运行的应用程序会慢慢消耗越来越多的内存,而无需进行某种手动过程来强制对象恢复到故障状态。
是否有任何已知的模式来处理这个问题。我会想象如此,因为很多人使用核心数据我只是找不到任何建议
你怎么知道你首先进入保留循环?是否使用ARC选项? – Eimantas
ARC不会阻止保留周期,它不同于垃圾回收(我已经在使用ARC)。上面的例子说明了在正常使用情况下如何在核心数据中发生保留周期。 – Imran
很多人使用核心数据,你是对的。它已经存在多年了。你需要在第二段中检查你的断言。是这样吗?如果这是核心数据的缺陷,人们会谈论它,你不觉得吗? – Jessedc