Ios NSArray上的多个NSPredicate
我有一个Ios NSArray上的多个NSPredicate,ios,Ios,我有一个NSPredicate数组和一个值数组。现在,我想搜索此数组的所有NSPredicate是否为true。我使用的是这样的循环: bool valid = true; for(NSPredicate* predicate in predicates){ if([[searchValues filteredArrayUsingPredicate:predicate] count] == 0){ valid = false
NSPredicate
数组和一个值数组。现在,我想搜索此数组的所有NSPredicate
是否为true
。我使用的是这样的循环:
bool valid = true;
for(NSPredicate* predicate in predicates){
if([[searchValues filteredArrayUsingPredicate:predicate] count] == 0){
valid = false;
break;
}
}
是否有更好的方法来实现这一点,即以某种方式避免NSPredicate上的循环?不,这不是我打算做的。这里,复合谓词对于每个值都应该为true,而我希望每个谓词至少由一个数据值满足。请看上面的代码。@Aarkan:你是对的,我误解了这个问题,对不起。-我认为没有比像你那样循环谓词更好或更简单的方法了。
NSArray *predicates = ... // your array of predicates
NSPredicate *andPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:predicates];
BOOL valid = [[searchValues filteredArrayUsingPredicate:andPredicate] count] > 0;