我有一组包含名称、地址和电话的对象。没有等
我希望能够在数组中搜索任何出现的术语 - 无论是在名称字段、地址字段等中。
我有这样的想法:
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
// Update the filtered array based on the search text and scope.
// Remove all objects from the filtered search array
[self.searchResults removeAllObjects];
// Filter the array using NSPredicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",searchText];
searchResults = [NSMutableArray arrayWithArray:[contactArray filteredArrayUsingPredicate:predicate]];
}
这会导致异常“不能在集合中使用/包含运算符”。
更新。我现在最多可以搜索三个字段。当我添加第四个(以任何顺序)时,我得到了这个异常:“无法解析格式字符串......”
谓词代码现在是:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.narrative contains[c] %@ OR SELF.category contains[c] %@ OR SELF.date contains[c] OR SELF.name contains[c] %@", searchText, searchText, searchText, searchText];
searchResults = [NSMutableArray arrayWithArray:[allDreams filteredArrayUsingPredicate:predicate]];
三个是谓词搜索字段的限制吗?我该如何解决这个问题?再次感谢。