2010-09-26 3 views
5

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

У меня есть 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

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

How do I copy or move an NSManagedObject from one context to another?

+0

Спасибо за ответ! Я вижу этот ответ, но, похоже, обсуждает копирование объекта из одного контекста в другой. Используется ли тот же ответ, если я хочу использовать только один контекст? – jschmidt

+0

Оказалось, что это работает, но потребовалось некоторое перекодирование моего кода вызова. URL-адрес предоставляет код для выполнения копии, но на самом деле не отвечает, как правильно его вызвать. Я добавляю свой код в свой вопрос выше. – jschmidt

Смежные вопросы