NSFetchRequest - 通过关系获取所有对象
Posted
技术标签:
【中文标题】NSFetchRequest - 通过关系获取所有对象【英文标题】:NSFetchRequest - get all objects by relationship 【发布时间】:2014-04-12 08:45:57 【问题描述】:是否可以创建一个NSFetcherRequest
或类似的东西来通过关系获取所有对象?例如,我有三个实体学生、缺席和科目。学生有属性NSSet
缺席,缺席有属性学生和学科。我需要让一名学生和一门学科全部缺席。所以我需要类似的伪代码:选择所有缺席 where student=="concrete student" 和 where subject=="concrete subject"。但它不是属性,而是关系!我该怎么做?我知道,我可以让所有学生缺席,然后过滤它,但我认为它非常低效。
【问题讨论】:
【参考方案1】:attributes 和 relationships 都是托管对象的 properties,并且 可以用作谓词中的关键路径,例如:
Student *concreteStudent = ...;
Subject *concreteSubject = ...;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"student = %@ AND subject = %@",
concreteStudent, concreteSubject];
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Absence"];
fetchRequest.predicate = predicate;
如果“学生”和“主题”是缺席实体的一对一关系。
【讨论】:
是的:]!谢谢。我试试看。以上是关于NSFetchRequest - 通过关系获取所有对象的主要内容,如果未能解决你的问题,请参考以下文章
NSFetchRequest 具有一对一关系属性 == YES 谓词错误地获取每个实体
排除某些对象的一对多关系上的 NSFetchRequest 无法按预期工作
在 NSArray 中获取 NSFetchRequest 的所有结果