Как сделать глубокую копию NSManagedObject в основных данных

Я пытаюсь создать дубликат существующего 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];
}

person jschmidt    schedule 26.09.2010    source источник


Ответы (1)


Это довольно сложно. См. Этот ответ и связанный с ним пример кода:

Как сделать Я копирую или перемещаю NSManagedObject из одного контекста в другой?

person TechZen    schedule 27.09.2010
comment
Спасибо за ответ! Я вижу этот ответ, но, похоже, он обсуждает копирование объекта из одного контекста в другой. Применяется ли тот же ответ, если я хочу использовать только один контекст? - person jschmidt; 28.09.2010
comment
Оказывается, это работает, но потребовалось переделать мой вызывающий код. URL-адрес предоставляет код для выполнения копирования, но на самом деле не указывает, как его правильно вызвать. Я добавляю свой код в свой вопрос выше. - person jschmidt; 02.10.2010