Как сделать Deep Copy NSManagedObject в Core Data

Я пытаюсь создать копию существующего NSManagedObject и связанных с ним подобъектов в Core Data. Я не могу найти легкий способ сделать это.

У меня есть NSArrayController, который заполняется из базы данных Core Data. Я хочу взять объект в 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];
}

Ответы на вопрос(1)

Решение Вопроса
 jschmidt28 сент. 2010 г., 01:32
Спасибо за ответ! Я вижу этот ответ, но, похоже, обсуждается копирование объекта из одного контекста в другой. Применим ли тот же ответ, если я хочу использовать только один контекст?
 jschmidt02 окт. 2010 г., 02:46
Оказывается, это работает, но потребовалось некоторое повторение моего кода вызова. URL-адрес предоставляет код для выполнения копирования, но на самом деле не указывает, как правильно его вызвать. Я добавляю свой код в мой вопрос выше.

Ваш ответ на вопрос