1

假设我有一个显示 MOC,用于显示从 Web 服务获取的地址簿联系人。在应用程序的其他地方,我有一个搜索功能,可以根据用户输入的查询搜索 Web 服务,然后我将这些对象获取并存储在暂存器 MOC 中,这样它就不会“污染”显示 MOC 提供的显示。

现在假设用户在暂存器 MOC 中修改了一个联系人。我想将这些更改同步到显示 MOC 中的任何等效对象(如果存在)。如果更改的对象不存在,我不希望将更改的对象添加到显示 MOC 中,并且我希望更改也以另一种方式工作(例如,如果用户更改显示 MOC 中的联系人,它应该在暂存器 MOC 中更改,但前提是那里已经存在等效对象)。我不希望任何一个 MOC 由于对象更新而将对象添加到其中。使暂存器 MOC 成为显示 MOC 的子级听起来像是错误的解决方案。

确保不同 MOC 中的等效对象保持同步而不更改任何其他 MOC 中对象的补充的最佳模式是什么?

4

1 回答 1

1

这就是 的目的NSManagedObjectContextDidSaveNotification。每当上下文保存更改时,都会自动发布此通知以及有关更改内容的信息。观察此通知,并使用该mergeChangesFromContextDidSaveNotification:方法获取保存在一个上下文中的更改并将它们合并到另一个上下文中。

于 2013-09-02T20:46:37.587 回答