Objective c 从UISearchBar对NSArray执行搜索
我试图对JSON提要中的一些结果执行搜索,这些结果已加载到名为tableData的NSArray中,然后显示在UITable中 searchResults NSArray已声明为.h文件。问题是目前searchResults是空的,没有向控制台输出任何内容。我不知道为什么 我想知道这张桌子上是否少了什么东西Objective c 从UISearchBar对NSArray执行搜索,objective-c,ios,nsarray,nspredicate,Objective C,Ios,Nsarray,Nspredicate,我试图对JSON提要中的一些结果执行搜索,这些结果已加载到名为tableData的NSArray中,然后显示在UITable中 searchResults NSArray已声明为.h文件。问题是目前searchResults是空的,没有向控制台输出任何内容。我不知道为什么 我想知道这张桌子上是否少了什么东西 searchResults = [tableData filteredArrayUsingPredicate:resultPredicate]; 下面的代码行 谢谢你的帮助 - (void
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];
如果仍然需要检查对象中包含的其他字段,可以创建复合谓词。有关谓词的详细信息,请参见尝试替换[cd]->[c]:
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self.youProperty contains[c] %@", searchString];
like[cd]表示“不区分大小写和变音字符的like”。您的tableData只是一个NSString数组?不,对于返回的每个记录,数据都是一个NSDictionary-like:表结果是{cat=“Pacchetti Vacanze”;city=“*”;coords={lat=“45.69769”;lng=“9.21534”};