如何制作 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)
如何在 Core Data 中制作 NSManagedObject 的深拷贝