Core data 如何在核心数据中对NSManagedObject进行深度复制

Core data 如何在核心数据中对NSManagedObject进行深度复制,core-data,copy,nsarraycontroller,nsmanagedobject,Core Data,Copy,Nsarraycontroller,Nsmanagedobject,我正在尝试复制核心数据中现有的NSManagedObject和相关子对象。我似乎找不到一个简单的方法来做这件事 我有一个从核心数据数据库填充的NSArrayController。我想在selectionIndex处获取对象并进行深度复制,使其与同一父对象保持关联并复制所有子对象 感谢您的帮助 感谢TechZen提供的链接。我使用了该站点的示例代码,并使用了以下调用代码: RuleSetVersion *object = [[ruleSetVersionArrayController select

我正在尝试复制核心数据中现有的NSManagedObject和相关子对象。我似乎找不到一个简单的方法来做这件事

我有一个从核心数据数据库填充的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];
}

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


感谢您的回复!我看到了这个答案,但它似乎讨论了将一个对象从一个上下文复制到另一个上下文。如果我只想使用一个上下文,同样的答案也适用吗?事实证明,这是可行的,但需要对调用代码进行一些重新调整。URL提供了执行复制的代码,但实际上没有说明如何正确地调用它。我在上面的问题中添加了我的代码。