我有一个带有名称和地址的对象数组。 两个属性都是NSString类型。 但是,当我使用复合谓词时,两种结果都没有得到任何结果。如果我只使用一个谓词,那么它的效果非常好。 我的代码中有没有人知道这里出了什么问题?日Thnx
-(void)filterContentForSearchString:(NSString*) searchText
{
NSPredicate *resultsPredicate = [NSPredicate predicateWithFormat:@"SELF.name like[cd] %@", searchText];
NSPredicate *resultsPredicate2 = [NSPredicate predicateWithFormat:@"SELF.place like[cd] %@", searchText];
NSPredicate *compoundpred = [NSCompoundPredicate andPredicateWithSubpredicates:@[resultsPredicate, resultsPredicate2]];
self.searchResults = [self.companies filteredArrayUsingPredicate:compoundpred];
}
答案 0 :(得分:0)
您可以尝试使用单个谓词声明
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF.name like[cd] %@ OR SELF.place like[cd] %@", searchText, searchText];
直接用它过滤数组
self.searchResults = [self.companies filteredArrayUsingPredicate:predicate];