使用新行条目复制coredata关系对象

时间:2015-05-19 18:23:19

标签: ios objective-c core-data

我有2个具有一对一关系的实体。我在我的应用程序中具有复制功能,它复制了managedobject并使用此对象创建了一个新条目。

2个实体实际上是DocMetaData和DocumentData。

DocMetaData包含文档详细信息,如名称,大小,类型和DocumentData包含实际文档。现在,当我将文档从一个文件夹复制到另一个文件夹时,应该插入一个新的DocMetaData实体对象,但是我希望它不是创建一个DocumentData对象,而是从关系本身创建一个条目,因为将一个veru大文档从一个文件夹复制到另一个文件夹可能是一个沉重的操作。

1 个答案:

答案 0 :(得分:0)

只需复制DocMetaData对象并重新关联该关系:

document.metaData = newMetaData;

请注意,在核心数据中并没有真正像"复制"管理对象。您必须创建一个新属性并分配原始对象中的所有属性:

DocMetaData *newMetaData = [NSEntityDescription insertNewObjectForEntityForName:
  @"DocMetaData" inManagedObjectContext:context];
// populate the attributes of newMetaData with the existing object        
newMetaData.name = document.metaData.name; // etc.