Ios 是否有办法根据CoreData中存储的实际值设置NSPredicate?
我需要根据CoreDate中存储的实际值设置NSPredicate 假设我们有一个CoreData实体:“毕业生”。如果毕业生的毕业日期不为空,我们希望获取毕业日期早于日期1的毕业生。否则,我想检查他/她的生日是否早于Date2 谓词如下所示:Ios 是否有办法根据CoreData中存储的实际值设置NSPredicate?,ios,swift,core-data,Ios,Swift,Core Data,我需要根据CoreDate中存储的实际值设置NSPredicate 假设我们有一个CoreData实体:“毕业生”。如果毕业生的毕业日期不为空,我们希望获取毕业日期早于日期1的毕业生。否则,我想检查他/她的生日是否早于Date2 谓词如下所示: "if graduationDate != null graduationDate < %@ else birthday < %@" “如果毕业日期!=null毕业日期
"if graduationDate != null graduationDate < %@ else birthday < %@"
“如果毕业日期!=null毕业日期<%@否则生日<%@”
所以我实际上有两个谓词。只有当第一个谓词要检查的字段为null时,第二个谓词才会生效
我的想法:
我的问题不是如何使用NSPredicate筛选获取结果。它是关于如何使用流控件(如if else子句)设置NSpredicate的您可以使用
NSCompoundPredicate
组合较小的谓词
let graduates = NSPredicate.init(format: "graduationDate != NULL AND graduationDate < %@ ", graduationDate);
let oldPeople = NSPredicate.init(format: "graduationDate == NULL AND birthday > %@ ", cutOffBirthday);
let predicate = NSCompoundPredicate.init(orPredicateWithSubpredicates: [graduates, oldPeople]);
let graduates=NSPredicate.init(格式:“graduationDate!=NULL,graduationDate<%@”,graduationDate);
让oldPeople=NSPredicate.init(格式:“毕业日期==NULL,生日>%@”,截止日期);
let predicate=NSCompoundPredicate.init(或predicatewithsubpredicates:[毕业生,老人]);
您可以使用NSCompoundPredicate
组合较小的谓词
let graduates = NSPredicate.init(format: "graduationDate != NULL AND graduationDate < %@ ", graduationDate);
let oldPeople = NSPredicate.init(format: "graduationDate == NULL AND birthday > %@ ", cutOffBirthday);
let predicate = NSCompoundPredicate.init(orPredicateWithSubpredicates: [graduates, oldPeople]);
let graduates=NSPredicate.init(格式:“graduationDate!=NULL,graduationDate<%@”,graduationDate);
让oldPeople=NSPredicate.init(格式:“毕业日期==NULL,生日>%@”,截止日期);
let predicate=NSCompoundPredicate.init(或predicatewithsubpredicates:[毕业生,老人]);
向下滚动至“过滤结果”。这个问题也被问了好几次,所以你可以在发布新问题之前进行搜索。您还可以根据需要为多个谓词添加NSCompoundPredicate。如果NSPredicate和NSCompoundPredicate是“基本用法”,您能否解释核心数据获取的高级用法,以及您对我们这些受教育程度较低的基本用户的要求?向下滚动到“筛选结果”的可能重复。这个问题也被问了好几次,所以你可以在发布新问题之前进行搜索。您还可以根据需要为多个谓词添加NSCompoundPredicate。如果NSPredicate和NSCompoundPredicate是“基本用法”,您能否解释核心数据获取的高级用法以及您对我们这些受教育程度较低的基本用户的要求?可能重复的