我正在尝试学习如何使用核心数据,但是我被困于在两个实体之间建立关系,我不知道我是否以错误的角度看待这个问题,但是基本上,我有两个实体:“ 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也获得了一个新值。

10-05 20:20