如何在Core Data中制作NSManagedObject的Deep Copy

jsc*_*idt 5 copy core-data nsarraycontroller nsmanagedobject

我试图复制核心数据中现有的NSManagedObject和相关的子对象.我似乎找不到一个简单的方法来做到这一点.

我有一个从Core Data数据库填充的NSArrayController.我想在selectionIndex处获取对象并进行深层复制,使其与同一父对象相关并复制所有子对象.

任何帮助表示赞赏!

感谢TechZen的链接.我使用了该站点的示例代码并使用了此调用代码:

RuleSetVersion *object = [[ruleSetVersionArrayController selectedObjects] lastObject];

NSString *parentEntity = @"RuleSet";

RuleSetVersion *newObject = (RuleSetVersion*)[self copyObject:object toContext:[self managedObjectContext] parent:parentEntity];

[newObject setRuleSetEffectiveDate:[[NSDate alloc] init]];
[newObject setRuleSetVersionLastModifiedDate:[[NSDate alloc] init]];

[newObject setRuleSet:object.ruleSet];

NSError *error;

if ([managedObjectContext save:&error] == NO) {
    [NSApp presentError:error];
}
Run Code Online (Sandbox Code Playgroud)

Tec*_*Zen 1

这是相当复杂的。请参阅此答案及其链接的示例代码:

如何将 NSManagedObject 从一个上下文复制或移动到另一个上下文?