iPhone核心数据递归关系

Posted

技术标签:

【中文标题】iPhone核心数据递归关系【英文标题】:iPhone Core Data Recursive Relationships 【发布时间】:2009-11-16 15:54:19 【问题描述】:

我在处理核心数据中的递归关系时遇到了一些问题。我有一个名为“SearchCategory”的托管对象,该类别可以有“Categories”,也可以有“Category”。在托管对象建模器中,我在 SearchCategory 实体上设置了两个关系,并且都指向 SearchCategory 实体——一个名为“Categories”并且是一对多关系。另一个是“Category”,不是对多,是“Categories”的逆。

在我的代码中,我使用“setCategoriesObject”将类别添加到搜索类别中,这似乎有效。但是,当我说[mySearchCategory setCategory:aParentCategory],其中mySearchCategory 将是aParentCategory 的子类别时,它似乎不需要记忆。如果我运行上面的代码,那么[managedobjectcontext save:&err],它实际上是把父类的主键保存到数据库中子类的“Category”字段中,但是Core Data并没有在运行时合成这个关系,所以[mySearchCategory Category] 返回零。这里有什么想法吗?

【问题讨论】:

我很难跟上你。其他每个词似乎都是“类别”。您可以添加模型的屏幕截图吗?我认为这会有所帮助。 ...请显示您正在使用的代码以及您从-[NSManagedObjectContext save:] 收到的 NSError 的确切字符串表示形式。 您的逆向关系是否设置为真正的逆向关系?如果你这样做了,那么你会看到一行只有基数箭头来指示一对一或一对多。您真的应该发布数据模型的屏幕截图。 【参考方案1】:

原来我在解释我看到的结果不正确。这种关系实际上运作良好,但我看待它的方式似乎不是。对不起,虚假的问题:(

【讨论】:

以上是关于iPhone核心数据递归关系的主要内容,如果未能解决你的问题,请参考以下文章

iPhone核心数据关系

iphone核心数据:三层Entity关系混乱

iphone核心数据:无法删除具有一对多关系的数据

一对多关系 iPhone - NSPredicate 核心数据查询

iPhones SDK:使用核心数据设置关系属性对象?

iPhone核心数据得到孙子