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;