Objective c 从UISearchBar对NSArray执行搜索

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

我试图对JSON提要中的一些结果执行搜索,这些结果已加载到名为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];

如果仍然需要检查对象中包含的其他字段,可以创建复合谓词。有关谓词的详细信息,请参见

尝试替换[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”};