Cómo hacer copia de profundo NSManagedObject de datos básicos
-
25-09-2019 - |
Pregunta
Estoy tratando de hacer un duplicado de una NSManagedObject existente y sub-objetos relacionados en la base de datos. Parece que no puedo encontrar una manera fácil de hacer esto.
Tengo una NSArrayController que se rellena a partir de una base de datos central de datos. Quiero aprovechar el objeto en el selectionIndex y hacer una copia en profundidad, manteniéndolo relacionado con el mismo objeto padre y la copia de todos los objetos secundarios.
Cualquier ayuda se aprecia!
Gracias a TechZen para el enlace. He utilizado el código de ejemplo de ese sitio y utilizado este Código de llamada:
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];
}
Solución
Es bastante involucrado. Ver esta respuesta y el código de ejemplo relacionado de ella:
¿Cómo puedo copiar o mover un NSManagedObject de un contexto a otro?