我有一个带有 2 个托管对象上下文的 iPhone 应用程序。我的上下文之一涉及选择器,它允许用户添加新记录,然后选择这些新记录之一。一旦选择器被隐藏,该托管对象上下文将被保存并丢弃。
然后,我想在第二个托管对象上下文中使用这个选定的对象,并将其添加(关联)到另一个对象。第二个 MOC 的更改可以保存或删除。这就是为什么创建第一个 MOC 是为了允许始终保存选取器中所做的更改,无论它们是保存还是放弃第二个 MOC 中的更改。
我希望这是清楚的!我的问题是,当用户从选择器中选择对象时,该对象驻留在与需要使用它的位置不同的上下文中。有没有一种方法可以在上下文之间传递对象?也许使用对象的 ID(在它被持久化之后)。
感谢您的帮助!
您在问题中提到了正确的解决方案。您不能在多个上下文之间传递 NSManagedObjects,但可以传递 NSManagedObjectID 并使用它们来查询该 ID 表示的对象的适当上下文。因此,只需保留数据(通过保存:),然后将 ID 传递给其他上下文并使用它来向上下文询问适当的对象。
根据您想要执行的操作,您可能需要配置 mergeChangesFromContextDidSaveNotification: 以便一个上下文中的更改自动反映在另一个上下文中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)