NSPredicate多个条件没有结果

时间:2014-07-08 20:40:01

标签: ios objective-c

我使用NSPredicate过滤搜索栏中的数组。这是我的代码完美无缺。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[cd] %@",searchText];

filteredArray = [NSMutableArray arrayWithArray:[storesArray filteredArrayUsingPredicate:predicate]];

问题是我想添加第二个条件作为地址的名称。我怎样才能做到这一点?我试过这个,但后来没有一个谓词在起作用。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[cd] %@",searchText];
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF.address contains[cd] %@",searchText];


NSPredicate *fullPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[predicate, predicate1]];
filteredArray = [NSMutableArray arrayWithArray:[storesArray filteredArrayUsingPredicate:fullPredicate]];

1 个答案:

答案 0 :(得分:1)

您可以使用OR comparison operator

NSPredicate *predicate = 
    [NSPredicate predicateWithFormat:@"SELF.name contains[cd] %@ OR SELF.address contains[cd] %@", searchText, searchText];