如何检测核心数据关系的变化?

时间:2014-07-17 23:25:48

标签: objective-c core-data

在核心数据中,我们试图确定自上次保存事件(在关系中删除,添加或更新的对象)以来我们的一对一和一对多关系中的增量。我们尝试使用 NSMangagedObjectContext 方法 updatedObjects ,但它只返回有关已更改属性的信息,并且没有关于关系的信息发生更改。我们搜索了Apple文档和其他来源,并考虑编写自定义托管对象访问器方法,但发现它非常气馁。

找出NSManagedObject关系中的增量的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

updatedObjects应该返回对象图中有变化的所有对象。你只需要确保:

  1. 您正在使用相同的托管对象上下文,
  2. 尚未保存更改。
  3. 您已将要观察的对象添加到上下文的registeredObjects
  4. 你可以完成最后一点,例如通过获取您感兴趣的实体的所有实例。

    请注意,您还可以使用NSManagedObjectContextObjectsDidChangeNotification对对象图中的更改做出反应。