我正在尝试创建具有多个条件的nspredicate.我找到了几个解决方案,但是他们似乎都没有使用我的方法.我找到的最好的一个是下面.
这是我的单一谓词方法,它的工作原理很好:
nspredicate *predicate = [nspredicate predicateWithFormat:@"name contains[c] %@",searchText]; filteredBusinesses = [businesses filteredArrayUsingPredicate:predicate];
这是我的编辑版本与多个条件.我不知道出了什么问题.有任何想法吗?
nspredicate *p1 = [nspredicate predicateWithFormat:@"name contains[c] %@",searchText]; nspredicate *p2 = [nspredicate predicateWithFormat:@"businessArea contains[c] %@",searchText]; nspredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[p1,p2]]; filteredBusinesses = [businesses filteredArrayUsingPredicate:predicate];
解决方法
你可以试试这个
nspredicate *predicate = [NSCompoundPredicate orPredicateWithSubpredicates:@[p1,p2]];