当对象的上下文不同时,如何制作NSManagedObject的浅表副本?

时间:2011-08-08 05:55:45

标签: core-data nsmanagedobjectcontext

我正在iOS应用程序中实现“重复”功能。我正在使用以下工作流程:

  1. 在根视图控制器
  2. 中的初始上下文中显示托管对象的列表
  3. 当用户点击一行时,创建一个新的上下文将其传递给带有重复的托管对象([[DetailController alloc] initWithObject:clonedObject inContext:newContext])的“详细信息”视图控制器。
  4. 然而,我正在努力解决从源对象到克隆对象的重新分配关系的概念,因为它们的托管对象上下文不同。对此有何正确的解决方法:

    1. 我应该重新分配指针值,不要打扰MOC或......
    2. 我应该根据它们的唯一标识符来重新获取新上下文中的值吗?
    3. 我没想到的任何其他选项?
    4. P.S。上下文使用相同的持久性存储协调器。

1 个答案:

答案 0 :(得分:1)

托管对象ID是线程安全的。因此,您可以将托管对象ID传递给视图控制器中的MOC,通过existingObjectWithID:error检索该对象,然后在该上下文中执行复制。这样,对象永远不会跨越MOC边界。