2010-09-26 40 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 2010-09-27 23:32:07

+0

事實證明,這工作,但它花了一些重新調整我的調用代碼。 URL提供執行副本的代碼,但並未真正解決如何適當地調用它。我在上面的問題中添加了我的代碼。 – jschmidt 2010-10-02 00:46:24

相關問題