好的,经过长时间的搜索、犹豫和更多的搜索,我似乎无法弄清楚这一点。
我有一个 SearchDisplayController,我有四个不同的数组,我正在使用 NSPredicate 进行搜索,因为每个 UITableViewCell 都由 4 个字符串(标题、描述等)组成。
我现在有 4 个搜索数组、search_title、search_description 等,它们的填充方式如下:
- (void)filterContentForSearchText:(NSString*)searchText
scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
self.search_category = [self.temp_category filteredArrayUsingPredicate:resultPredicate];
self.search_producttitle = [self.price_producttitle filteredArrayUsingPredicate:resultPredicate];
self.search_type = [self.price_type filteredArrayUsingPredicate:resultPredicate];
self.search_description = [self.price_description filteredArrayUsingPredicate:resultPredicate];
当我使用 NSLog(数组计数)时,我可以看到它正在工作,因为它在我输入搜索词时给出了每个数组的正确计数。
我的表格视图单元格如下所示:
if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]){
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.nameLabel.text = [self.search_producttitle objectAtIndex:[[searchResults objectAtIndex:indexPath.row] integerValue]];
cell.priceLabel.text = [self.search_price objectAtIndex:[[searchResults objectAtIndex:indexPath.row] integerValue]];
cell.descrLabel.text = [self.search_description objectAtIndex:[[searchResults objectAtIndex:indexPath.row] integerValue]];
cell.IDLabel.text = [self.search_type objectAtIndex:[[searchResults objectAtIndex:indexPath.row] integerValue]];
}
else{
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.nameLabel.text = [price_producttitle objectAtIndex:indexPath.row];
cell.IDLabel.text = [price_type objectAtIndex:indexPath.row];
cell.priceLabel.text = [price objectAtIndex:indexPath.row];
cell.descrLabel.text = [price_description objectAtIndex:indexPath.row];
也许您已经可以看到我正在尝试做的事情。我现在从旧数组制作新数组,我称之为搜索数组。然而,这些数组是相互独立的(一个数组可能是空的,而另一个是研究结果)。我需要知道数据来自哪个索引,存储在那些搜索数组中。如果我知道 search_producttitle 中的数据来自 price_producttitle (原始数组)中的索引 1,3 和 4,那么我可以将这些数字用于 indexPath.row 来显示。至少,这是我现在的计划,制作一个 searchResult 数组,其中包含在制作单元格时应该在 objectAtIndex 中使用的数字。
我正在为此苦苦挣扎,我找不到他们在多个数组中搜索的任何示例,因为单元格是由多个数组组成的。
有人可以给我一个好的方向提示,或者我可以使用的例子吗?
先感谢您。
普拉斯托
我使用的参考资料: