搜索栏 - 过滤集合视图数据源的搜索词数组

Search Bar - Filtering an Array of search terms for a Collection View Data Source

我有一个主 plist 文件,其中包含一个集合视图数据源。该文件有一个 Root 数组元素,每个类别的字典按以下格式排列:

示例显示一个 'category'。这些被加载到一个数组中用于 UICollectionView 和一个 属性 用于访问

self.mainDataSource = [[NSArray alloc] initWithContentsOfFile:plistPath];  

当我设置单元格时,我为 indexPath.row 创建了一个 Dictionary 实例并访问相关对象。这一切都很好。

问题
我现在要做的是添加一个搜索栏。我有所有设置,但我想根据输入的单词过滤类别,与每个类别可能具有的 'sub' 搜索词数组相比。

我有以下方法在他们搜索时运行,但我无法找到搜索类别字典的 'sub' 数组的最佳方法。

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope{
    NSPredicate *resultPredicate    = [NSPredicate predicateWithFormat:@"self contains[c] %@", searchText];
    self.dataSourceForSearchResult  = [self.mainDataSource filteredArrayUsingPredicate:resultPredicate];
}
NSPredicate *resultPredicate    = [NSPredicate predicateWithFormat:@"(ANY SearchTerms LIKE[cd] %@ OR ANY SearchTerms CONTAINS[cd] %@)", searchText, searchText];
self.dataSourceForSearchResult  = [self.mainDataSource filteredArrayUsingPredicate:resultPredicate];  

诀窍是包含 'ANY' 专门让 LIKE 起作用。然后相关子数组的名称作为键。