Core Data 上的一对多关系

Posted

技术标签:

【中文标题】Core Data 上的一对多关系【英文标题】:One-to-Many relationship on Core Data 【发布时间】:2011-09-30 22:37:21 【问题描述】:

在一对多的关系上,我遇到了 Core Data 的问题。

我有两个实体,比如 Class 和 Pupils。 一个班级可以有很多学生,但一个学生只能属于一个班级。

我可以列出 Class 项目并将它们放在 UITableView 对象中。 我还可以列出 Pupils 项目并将它们放在 UITableView 对象中。

我的问题是:对于一个给定的班级说classX,我怎样才能得到相应的学生。

这是我第一次使用 Core Data 的“关系”。 我试图在网上找到一些示例代码,但没有成功。

感谢任何有用的提示。

【问题讨论】:

【参考方案1】:

如果您的关系名为“学生”,并且您有一个名为“myClass”的类的托管对象,那么:

NSSet *pupilsForClass = [myClass valueForKey:@"pupils"];
for (NSManagedObject *pupil in pupilsForClass) 
    // Do something for each pupil

如果您有 Pupil 和 Class 实体的 NSManagedObject 子类,那么您还可以使用由核心数据动态生成的 setter/getter 方法更直接地访问属性。

【讨论】:

以上是关于Core Data 上的一对多关系的主要内容,如果未能解决你的问题,请参考以下文章

Core Data addObject 一对多关系

设置一对多关系 Core Data 和 Magical Record

Core Data 获取请求与 NSFetchedResultsController 的一对多关系

Core Data 中一对多关系的正确 NSPredicate 格式

如何管理 Core Data 中的一对多关系?

如何为一对多关系正确配置 Core Data 数据模型和 NSManagedObject?