我正在尝试创建具有多个条件的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]];