我有一个带有UISearchController的表来搜索它。第一个表是从JSON填充的,格式为:
{
"items":
[
{
"title":"title1",
"url":"url1",
},
{
"title":"title2",
"url":"url2",
}
]
}
"标题"显示为单元格的textLabel,url是单击单元格时打开的链接。
当我在搜索栏中搜索时,结果表显示由符合搜索条件的标题填充。我的问题是这些不包括网址,所以点击这些单元格时没有任何反应。我的搜索条件如下:
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
// filter the search results
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", self.searchController.searchBar.text];
self.results = [[self.JSONarray valueForKey:@"title"] filteredArrayUsingPredicate:predicate];
[self.tableView reloadData];
}
我可以看到我认为的问题,但无法弄清楚如何解决它。搜索时只搜索标题并使用这些标题填充结果数组,但我需要根据相应的标题过滤网址。
任何帮助都会非常感激。
答案 0 :(得分:0)
由于我没有提供您的所有代码,因此我无法在脑海中输入此内容,但请尝试以下操作:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title contains [cd] %@", self.searchController.searchBar.text];
self.results = [self.JSONarray filteredArrayUsingPredicate:predicate];
不同之处在于我们不首先过滤JSON数组的title
元素;相反,我们正在搜索整个数组,并在谓词中使用title
。
执行此操作后,self.results
应为NSArray
NSDictionary
个,每个title
包含url
和.vimrc
元素。因此,您可以根据需要访问网址以检索结果。