Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 当对象';背景不同?_Core Data_Nsmanagedobjectcontext - Fatal编程技术网

Core data 当对象';背景不同?

Core data 当对象';背景不同?,core-data,nsmanagedobjectcontext,Core Data,Nsmanagedobjectcontext,我正在iOS应用程序中实现“复制”功能。我正在使用以下工作流: 在根视图控制器的初始上下文中显示托管对象的列表 当用户点击一行时,创建一个新的上下文并将其传递给具有重复托管对象的“detail”视图控制器([[DetailController alloc]initWithObject:clonedObject:newContext]) 然而,由于源对象与克隆对象之间的托管对象上下文不同,因此我很难理解将关系从源对象重新分配到克隆对象的概念。正确的方法是什么: 我是否应该重新分配指针值,而不必担心

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

  • 在根视图控制器的初始上下文中显示托管对象的列表
  • 当用户点击一行时,创建一个新的上下文并将其传递给具有重复托管对象的“detail”视图控制器(
    [[DetailController alloc]initWithObject:clonedObject:newContext]
  • 然而,由于源对象与克隆对象之间的托管对象上下文不同,因此我很难理解将关系从源对象重新分配到克隆对象的概念。正确的方法是什么:

  • 我是否应该重新分配指针值,而不必担心MOC或
  • 我应该根据值的唯一标识符在新上下文中重新蚀刻值
  • 还有其他我没有想到的选择吗

  • 另外,上下文使用相同的持久存储协调器。

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

    任何不使用
    objectWithID:
    的特殊原因?objectWithID始终返回一个对象,即使该对象是错误的。看见