2

我正在尝试对来自 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);

}
4

2 回答 2

2

如果您正在字典中查找名为“cat”的字段,而不是在 SELF 中查找谓词,它应该在 SELF.cat 中查找。

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF.cat CONTAINS[cd] %@", searchText];

如果您仍需要检查对象中包含的其他字段,则可以创建复合谓词。谓词的详细信息可以在Apple 的谓词编程指南中找到。

于 2012-11-06T15:49:59.020 回答
0

尝试替换 [cd] -> [c]:

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self.youProperty contains[c] %@", searchString];

like[cd] 的意思是“不区分大小写和变音符号的like”。</p>

于 2014-02-05T15:45:12.007 回答