我有一个NSPredicate
看起来像这样:NSPredicate处理NIL的字符串作为任何字符
NSPredicate *predicateSearch;
if ([category_array count]>0 && [location_array count]>0) {
predicateSearch =[NSPredicate predicateWithFormat:@"category_id IN %@ AND location_id IN %@ AND company_title CONTAINS %@",category_array,location_array,searchStr];
}
else if ([category_array count]>0){
predicateSearch =[NSPredicate predicateWithFormat:@"category_id IN %@ AND company_title CONTAINS %@",category_array,searchStr];
}
else if([location_array count]>0){
predicateSearch = [NSPredicate predicateWithFormat:@"location_id IN %@ AND company_title CONTAINS %@",location_array,searchStr];
}
[fetchRequest setPredicate:predicateSearch];
由于NSPredicate
是不能处理我现在用这个if语句格式化谓语Nil
值和处理Nil
值为'ANY'。 这里的问题是,如果它是Nil
,我还想将searchStr作为“ANY”进行处理。 我试图在Nil
的情况下将它设置为空字符串,但它不起作用。 有没有什么办法可以在每个案例中不使用任何If语句的情况下实现该目标(9条if语句太多)?
您可以使用'andPredicateWithSubpredicates:'。 – Larme