objective-c - 从 UISearchBar 对 NSArray 执行搜索

标签 objective-c ios nsarray nspredicate

我正在尝试对 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/

相关文章:

ios - 在 Cocoa 中组合多个字符串

objective-c - 如何通过 NSDates 和 NSStrings 对数组重新排序

iphone - 放大 MKCoordinateRegion ForMapRect 对于一些边距

ios - 将 int 转换为 NSString

ios - 在 AVPlayer 中播放视频

ios - 段错误 : 11 - Xcode 10

ios - 在 UITableView 中显示文件的 NSArray - iOS 5

iOS 7.1 Sprite Kit AVAudioSession 进入后台时崩溃

ios - Cocos2D CCScenes 的重要性?

ios - 将数组内容正确存储到带有键的字典中