我正在尝试搜索已加载到名为tableData的NSArray中的JSON提要的某些结果,然后显示在UITable中。
searchResults NSArray已声明为.h文件。问题是目前searchResults为空并且没有输出到控制台。我不确定为什么......
我想知道
是否遗漏了什么searchResults = [tableData filteredArrayUsingPredicate:resultPredicate];
下面的代码行
感谢您的帮助。
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
searchResults = [tableData filteredArrayUsingPredicate:resultPredicate];
NSLog(@"searchResults: %@", searchResults);
NSLog(@"tableData results: %@", tableData);
}
答案 0 :(得分:2)
如果你在字典中寻找一个名为'cat'的字段,而不是让谓词在SELF中查找,它应该在SELF.cat中查找。
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF.cat CONTAINS[cd] %@", searchText];
如果仍需要检查对象中包含的其他字段,则可以创建复合谓词。有关谓词的详细信息,请参阅Apple's Predicate Programming Guide.
答案 1 :(得分:0)
尝试替换[cd] - > [C]:
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self.youProperty contains[c] %@", searchString];
就像[cd]的意思是“case-and diacritic-insensitive like。”