CoreData – 一对多的build模关系是一对一的
我是核心数据build模的新手,我很难理解一对多关系是如何工作的。
我有一个名为Task
的父实体,它可以有多个Comment
实体的实例。 我这样build模:在Comments
,与Task
的关系称为task
, Task
实体是目的地。 在“ Task
,一种叫做“ comments
的关系,以“ Comment
作为其目的地,两种关系都是相反的。
不定义反转会导致警告或错误消息。 虽然这种方式的build模工作,我注意到,一旦我给一个给定的Task
创build第二个评论,第一个被replace(一对一的关系)。
告诉核心数据模型的正确方法是什么?这种关系在一个Task
允许许多评论?
此外,由于CoreData似乎自行pipe理主键,我将如何创build一个NSPredicate
来检索给定任务的所有注释?
感谢您的任何build议!
首先,您需要在Task
实体中设置plural
选项,在您的.xdatamodeled
select它,然后selectTask
实体的relationship
属性,以便您可以看到此comments
有plural
选项一定要检查出来。 你必须重新创build你的NSManagedObject
如果你使用生成的类,并且如果你使用的SQLite存储你必须删除和重build,所以它不会抱怨新的架构不一样与旧的。
为了检查你是否有一对多的关系,你的Task
实体应该有一个名为comments的属性,它是NSSet
一个类types而不是注释。
如果要检索给定任务的所有注释,则需要迭代该任务的NSSet(comments)
属性。