Como fazer cópias profundas do NSmanAgedObject nos dados principais
-
25-09-2019 - |
Pergunta
Estou tentando fazer uma duplicata de um NSMANAGEDOBJETION existente e subobjetos relacionados nos dados principais. Não consigo encontrar uma maneira fácil de fazer isso.
Eu tenho um NSArrayController que é preenchido em um banco de dados de dados principal. Quero pegar o objeto no seleção e fazer uma cópia profunda, mantendo -o relacionado ao mesmo objeto pai e copiando todos os objetos filhos.
Qualquer assistência é apreciada!
Obrigado a Techzen pelo link. Usei o código de amostra desse site e usei este código de chamada:
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];
}
Solução
Está bastante envolvido. Veja esta resposta e o código de amostra vinculado a partir dele:
Como copio ou movo um NSMANAGEDOBJET de um contexto para outro?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow