CoreData - 一对多建模关系是一对一的

tut*_*ain 18 core-data objective-c one-to-many ios

我是核心数据建模的新手,我很难理解一对多关系是如何工作的.

我有一个名为的父实体Task,它可以有几个Comment实体实例.我这样建模:on Comments,与实体一起Task调用目的地的关系.在,关系称为,其目的地,两个关系彼此相反. taskTaskTaskcommentsComment

未定义反向导致警告或错误消息.虽然这种方式的建模有效,但我注意到,一旦我为给定的第二个注释创建Task,第一个被替换(一对一的关系).

告诉核心数据模型这种关系允许多个注释合在一起的正确方法是什么Task

此外,由于CoreData似乎自己管理主键,我如何创建一个NSPredicate检索给定任务的所有注释?

谢谢你的任何建议!

Sha*_*osa 42

首先,您需要pluralTask实体中设置选项,在您的.xdatamodeled选择中选择实体的relationship属性,您应该能够看到这个Taskcomments在此输入图像描述

有一个plural选项一定要检查出来.你必须重新创建你NSManagedObject的使用生成类,如果你使用sqlite存储,你必须删除和重建,所以它不会抱怨新模式与旧模式不一样.

要检查您是否具有一对多关系,您的Task实体应该有一个名为comments的属性,这是一种NSSet不是注释的类类型.

如果要检索给定任务的所有注释,则需要迭代该NSSet(comments)任务的属性.