我正在尝试学习如何使用核心数据,但是我被困于在两个实体之间建立关系,我不知道我是否以错误的角度看待这个问题,但是基本上,我有两个实体:“ Listas”和“ Tarefas”。在我的xcdatamodeld中,我在对象之间创建了一对多关系,只是我不知道在添加“ Tarefa”时如何设置正确的关系。
我的问题更加清楚,这是我所拥有的图像:
添加“ Tarefas”对象时,对象与传递的“ Listas”对象如何关联?
谢谢!
最佳答案
它的作用与其他任何对象属性相同。
如果您没有自定义的NSManagedObject
子类,
Listas *myListas = // passed in
Tarefas *newTarefas = [NSEntityDescription insertNewObjectForEntityForName:@"Tarefas" inManagedObjectContext:myManagedObjectContext];
[newTarefas setValue:myListas forKey:@"tarefaLista"];
如果您有自定义的
NSManagedObject
子类,Listas *myListas = // passed in
Tarefas *newTarefas = [NSEntityDescription insertNewObjectForEntityForName:@"Tarefas" inManagedObjectContext:myManagedObjectContext];
[newTarefas setTarefaLista:myListas];
请记住,由于已正确配置了逆关系,因此只需要在关系的一侧进行分配。核心数据将确保另一边也已设置。因此,上面我只为
tarefaList
设置了一个值,但是listaTarefa
也获得了一个新值。