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 和 Magical Record
Core Data 获取请求与 NSFetchedResultsController 的一对多关系