sag*_*gar 8 iphone core-data nspredicate ios
我正在研究核心数据与3个实体(班级,学生,ExamRecord)及其关系区域:
Class<------>> Students <------> ExamRecord
Run Code Online (Sandbox Code Playgroud)
我创建了一个谓词,用于获取第5课的学生列表.
NSString * fmt2 = @"studentsToClass.className=%@";
NSPredicate * p2 = [NSPredicate predicateWithFormat:fmt2,@"5th",nil];
Run Code Online (Sandbox Code Playgroud)
有了这个,我得到了所有第5班的学生
现在我还想对学生提取的另一个过滤器.
获取考试记录"结果"为"通过"的学生.result是ExamResult实体中学生的属性
我如何在此使用复合谓词?
如果我错了,请纠正我
任何帮助将不胜感激
谢谢
Mar*_*n R 29
您可以使用复合谓词:
NSPredicate *p1 = [NSPredicate predicateWithFormat:@"studentsToClass.className = %@", @"5th"];
NSPredicate *p2 = [NSPredicate predicateWithFormat:@"studentsToExamRecord.result = %@", @"Pass"];
NSPredicate *p = [NSCompoundPredicate andPredicateWithSubpredicates: @[p1, p2]];
Run Code Online (Sandbox Code Playgroud)
或者您只需将测试与"AND"组合:
NSPredicate *p = [NSPredicate predicateWithFormat:@"studentsToClass.className = %@ AND studentsToExamRecord.result = %@",
@"5th", @"Pass"];
Run Code Online (Sandbox Code Playgroud)
请注意,参数列表predicateWithFormat未被nil终止.参数的数量由格式字符串中的格式说明符的数量决定.
| 归档时间: |
|
| 查看次数: |
12109 次 |
| 最近记录: |