如何制作 Core Data 对象图的精确副本?

Posted

技术标签:

【中文标题】如何制作 Core Data 对象图的精确副本?【英文标题】:How do I make an exact duplicate of a Core Data object graph? 【发布时间】:2009-10-16 00:56:57 【问题描述】:

我需要从一个 NSManagedObjectContext 复制现有对象图并将其插入到第二个 NSManagedObjectContext

有没有一种简单的方法可以做到这一点?据我所知,我可以向 MOC 索要其-registeredObjects,然后执行以下操作来复制属性:

NSString* entityName       = [[sourceObject entity] name];
NSManagedObject* newObject = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:newMoc];
NSArray* attKeys            = [[[sourceObject entity] attributesByName] allKeys];
NSDictionary* attributes    = [sourceObject dictionaryWithValuesForKeys:attKeys];
[newObject setValuesForKeysWithDictionary:attributes];

但是,我不确定如何复制这些关系。

【问题讨论】:

【参考方案1】:

我可能只是保存 managedObjectContext 并在新的持久存储协调器中重新打开持久存储并从中获取托管对象上下文。这应该会给您一个与原始对象图完全不相交的对象图。

【讨论】:

确实,这听起来比我搞砸的要容易得多。我试试看,谢谢。

以上是关于如何制作 Core Data 对象图的精确副本?的主要内容,如果未能解决你的问题,请参考以下文章

如何制作 UIComponent 的精确副本? (iPad)

如何使用 XSLT 制作 xml 节点的子节点的精确副本?

Core Data 乐观锁定失败的精确条件

如何在 Core Data 中制作 NSManagedObject 的深拷贝

iCloud、Core Data 和副本以及如何播种初始数据?

(Swift) 如何对 Core Data 进行模糊搜索?