NSFetchRequest - 按关系获取所有对象

时间:2014-04-12 08:45:58

标签: objective-c core-data relationship nsfetchrequest

可以通过关系创建一个NSFetcherRequest或类似的东西来获取所有对象吗?例如,我有三个实体学生,缺席和主题。学生有NSSet缺席属性,缺席有属性学生和科目。我需要得到一个学生和一个科目的所有缺席。所以我需要类似这个伪代码:选择所有缺席学生==“具体学生”和主题==“具体主题”。但它不是属性,而是关系!我该怎么做?我知道,我可以得到所有缺席的学生,而不是过滤它,但我认为,效率非常低。

1 个答案:

答案 0 :(得分:1)

属性关系都是托管对象的属性 可以用作谓词中的关键路径,例如:

 Student *concreteStudent = ...;
 Subject *concreteSubject = ...;
 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"student = %@ AND subject = %@",
     concreteStudent, concreteSubject];
 NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Absence"];
 fetchRequest.predicate = predicate;

如果"学生"和"主题"是缺席实体的一对一关系。