核心数据 – 核心数据:避免在多对多关系中保留循环

前端之家收集整理的这篇文章主要介绍了核心数据 – 核心数据:避免在多对多关系中保留循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我还在通过iOS开发学习我的方式,并与Core Data合作,并且刚刚遇到了保留周期.

通过阅读“核心数据编程指南”,我的理解是,在完成关系之后,您可以使用托管对象上下文方法refreshObject:mergeChanges来确保保留周期被破坏.

所以让我说一个部门和员工之间有很多关系,在我的代码中,我访问了部门的员工关系,这是否意味着我现在需要循环遍历每个员工对象并调用refreshObject:mergeChanges方法?在代码中这将是

for (Employee *anEmployee in department.employees) {
  //some code that accesses an employee's properties

  [context refreshObject:enEmployee mergeChanges:NO];
}

似乎如果我不这样做,我访问的每个员工对象现在将包含对部门的引用,我将最终得到保留周期.

我的理解正确吗?在处理核心数据中的多对多关系时,这是一个标准的方法吗?谢谢.

解决方法

您可以在 Breaking Relationship Retain Cycles查看,保留周期是必要的,以防止不必要的对象的分配.这意味着您在使用对象时保留对象.

如果您完成了该对象并且想要将其变为故障,则应该使用refreshObject:mergeChanges,以便尽可能处理内存.它不一定会在关系的另一端释放对象,只会在核心数据中设置一个标志,如果需要,对象可能会变成故障.

原文链接:https://www.f2er.com/iOS/336708.html

猜你在找的iOS相关文章