CoreData – 一对多的build模关系是一对一的

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

我有一个名为Task的父实体,它可以有多个Comment实体的实例。 我这样build模:在Comments ,与Task的关系称为taskTask实体是目的地。 在“ Task ,一种叫做“ comments的关系,以“ Comment作为其目的地,两种关系都是相反的。

不定义反转会导致警告或错误消息。 虽然这种方式的build模工作,我注意到,一旦我给一个给定的Task创build第二个评论,第一个被replace(一对一的关系)。

告诉核心数据模型的正确方法是什么?这种关系在一个Task允许许多评论?

此外,由于CoreData似乎自行pipe理主键,我将如何创build一个NSPredicate来检索给定任务的所有注释?

感谢您的任何build议!

首先,您需要在Task实体中设置plural选项,在您的.xdatamodeledselect它,然后selectTask实体的relationship属性,以便您可以看到此comments 在这里输入图像说明

plural选项一定要检查出来。 你必须重新创build你的NSManagedObject如果你使用生成的类,并且如果你使用的SQLite存储你必须删除和重build,所以它不会抱怨新的架构不一样与旧的。

为了检查你是否有一对多的关系,你的Task实体应该有一个名为comments的属性,它是NSSet一个类types而不是注释。

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