2010-09-26 4 views
5

코어 데이터에 기존 NSManagedObject 및 관련 하위 개체를 복제하려고합니다. 나는 이것을 할 수있는 쉬운 방법을 찾을 수없는 것 같습니다.코어 데이터에서 NSManagedObject의 딥 복사본을 만드는 방법

코어 데이터베이스에서 채워진 NSArrayController가 있습니다. 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

관련 문제