2012-01-17 103 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实体存在于您的模型中并作为对象并建立了关系。