在两个不同的上下文中建立托管对象之间的关系

时间:2011-09-28 14:16:32

标签: objective-c core-data nsthread nsmanagedobject nsmanagedobjectcontext

我正在解析JSON字符串,以在单独的线程和单独的托管对象上下文中创建新的托管对象。后来我想通过监听NSManagedObjectContextObjectsDidChangeNotification来合并主线程中的更改。

问题是我想建立新解析的对象与主moc中的其他对象之间的关系。但是我知道在不同的上下文中建立对象之间的关系是违法的。

完成此任务的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

如果保存主线程上的对象,则它们将可用于辅助线程上的新上下文,因为新上下文共享对持久性存储的访问权限。

如果要在两个线程上同时创建新对象,则需要先将上下文相互合并,然后才能知道在另一个上创建的对象。

合并基本上会在合并时生成彼此的上下文副本。