我正在尝试对 JSON feed 中的一些结果执行搜索,这些结果已加载到名为 tableData 的 NSArray 中,然后显示在 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);
}
最佳答案
如果您要在字典中查找名为“cat”的字段,则不应在 SELF 中查找谓词,而应在 SELF.cat 中查找。
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF.cat CONTAINS[cd] %@", searchText];
如果您仍然需要检查对象中包含的其他字段,您可以创建复合谓词。有关谓词的详细信息可以在 Apple's Predicate Programming Guide. 中找到。
关于objective-c - 从 UISearchBar 对 NSArray 执行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13254435/