iPhone核心数据得到孙子

Posted

技术标签:

【中文标题】iPhone核心数据得到孙子【英文标题】:iPhone Core Data get Grandchildren 【发布时间】:2010-08-22 15:49:39 【问题描述】:

如果我为父 - 子 - 孙设置了实体以及它们之间的一对多关系,我知道我可以获取父的所有子实体或子的所有孙实体。

是否可以运行 fetch 以获取给定父级的所有 Granchild 实体?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

如果每个对多关系都没有反向关系,则不,您无法运行您描述的获取请求。但是,您应该对反向关系进行建模。 CoreData 使用逆来保持对象图的一致性。给定从ChildParentGrandchindChildparent 关系,您可以这样做

Pareint *aParent; //already initialized

NSSet *allGrandchildren = [aParent valueForKeyPath:@"children.@unionOfSets.children"];

或对Grandchild 实体的获取请求,带有谓词:

[NSPredicate predicateWithFormat:@"parent.parent == %@", aParent];

【讨论】:

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

iPhone 核心数据 NSFetchRequest

将核心数据添加到 iPhone 项目

iPhone - 核心数据崩溃 - 多个托管对象上下文

(iphone) 核心定位在室内的精度如何?

iPhone:核心数据保存错误

iPhone - 获取核心数据的数据