在托管对象上下文之间传递对象

Mic*_*all 4 iphone core-data objective-c

我有一个带有2个托管对象上下文的iphone应用程序.我的一个上下文涉及一个选择器,它允许用户添加新记录,然后选择其中一个新记录.隐藏选择器后,将保存并丢弃该托管对象上下文.

然后,我想在第二个托管对象上下文中使用此选定对象,并将其添加(关联)到另一个对象.可以保存或删除第二个MOC的更改.这就是为什么创建第一个MOC以允许始终保存拾取器中所做的更改,无论它们保存还是丢弃第二个MOC中的更改.

我希望这很清楚!我的问题是当用户从选择器中选择对象时,该对象驻留在需要使用它的不同上下文中.有没有办法可以在上下文之间传递对象?也许使用对象的ID(在它被保留之后).

谢谢你的帮助!

Lou*_*arg 5

你在问题中提到了正确的解决方案.您不能在多个上下文之间传递NSManagedObjects,但是您可以传递NSManagedObjectID并使用它们来查询该ID所表示的对象的相应上下文.因此,只需保留数据(通过保存:),然后将ID传递给其他上下文,并使用它来询问相应对象的上下文.

根据您的要求,您可能需要装配mergeChangesFromContextDidSaveNotification:以便一个上下文中的更改自动反映在另一个上下文中.