我在我的应用中使用核心数据,想知道如何更新实体数据及其关系。
此处'功能'是实体,'别名'是NSSet
关系。
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Features" inManagedObjectContext:self.managedObjectContext];
NSManagedObjectContext *aliasMOC = [NSEntityDescription insertNewObjectForEntityForName:@"Alias" inManagedObjectContext:managedObjectContext];
使用insertNewObject
创建一个新集合,只更改其连接,而旧的NSSet
保留在sqlite中,我认为这会增加“不必要的数据”,而不会链接到Feature实体在数据库中。
答案 0 :(得分: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
。这假设您的模型中存在Child
和Parent
个实体,并且作为对象并建立了关系。