2012-01-17 128 views
0

我在我的應用程序中使用核心數據,想知道如何更新實體數據及其關係。iPhone:核心數據更新數據

這裏的'Feature'是實體,'Alias'是NSSet的關係。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Features" inManagedObjectContext:self.managedObjectContext]; 


NSManagedObjectContext *aliasMOC = [NSEntityDescription insertNewObjectForEntityForName:@"Alias" inManagedObjectContext:managedObjectContext]; 

使用insertNewObject創建一個新的集合,只有它的連接被改變,而老NSSet仍然因爲它是在sqlite的,我相信會增加不鏈接到數據庫中的功能實體的「不必要的數據」。

回答

0

很難說出你在這裏試圖做什麼,但insertNewObjectForEntityForName不會返回NSManagedObjectContext。您通常對所有數據庫操作使用相同的ManagedObjectContext。在繼續之前,您可能需要經過tutorial

我想你想創建一個一對多的關係,在這種情況下,你可以創建一個子實體,然後指定其母公司,像這樣(未經):

Parent *parent = [NSEntityDescription insertNewObjectForEntityForName:@"Parent" inManagedObjectContext:managedObjectContext]; 
Child *child = [NSEntityDescription insertNewObjectForEntityForName:@"Child" inManagedObjectContext:managedObjectContext]; 

child.parent = parent; 

parent.children現在應該包含child。這假定ChildParent實體存在於您的模型中並作爲對象並建立了關係。