gpt4 book ai didi

iphone - 在 coreData xcode iphone 中创建复合谓词

转载 作者:可可西里 更新时间:2023-11-01 03:02:27 25 4
gpt4 key购买 nike

嗨,我正在处理 3 个实体(Class、Students、ExamRecord)及其关系区域的核心数据:

Class<------>> Students <------> ExamRecord

我创建了一个谓词来获取第 5 类的学生列表。

NSString * fmt2 = @"studentsToClass.className=%@";
NSPredicate * p2 = [NSPredicate predicateWithFormat:fmt2,@"5th",nil];

有了这个,我得到了第 5 类的所有学生

现在我还想对获取的学生应用另一个过滤器。

获取考试记录“result”为“Pass”的学生。result是ExamResult实体中student的一个属性

我如何在其中使用复合谓词?

如有错误请指正

任何帮助将不胜感激

谢谢

最佳答案

您可以使用复合谓词:

NSPredicate *p1 = [NSPredicate predicateWithFormat:@"studentsToClass.className = %@", @"5th"];
NSPredicate *p2 = [NSPredicate predicateWithFormat:@"studentsToExamRecord.result = %@", @"Pass"];
NSPredicate *p = [NSCompoundPredicate andPredicateWithSubpredicates: @[p1, p2]];

或者您只需将测试与“AND”结合起来:

NSPredicate *p = [NSPredicate predicateWithFormat:@"studentsToClass.className = %@ AND studentsToExamRecord.result = %@",
@"5th", @"Pass"];

请注意,predicateWithFormat 的参数列表不是以nil 结尾的。参数的数量由格式中格式说明符的数量决定字符串。

关于iphone - 在 coreData xcode iphone 中创建复合谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com