【发布时间】:2014-12-04 11:43:05
【问题描述】:
我有两个数组:
NSMutableArray *moviesArray;
NSMutableArray *directorsArray;
moviesArray = [@"movie01",@"movie02",@"movie03",@"movie04"];
directorsArray = [@"director01",@"director02",@"director03",@"director04"];
我在表格视图中显示这个。每个单元格都有一个标题标签和一个导演标签。
cell.titleLabel.text = [moviesArray objectAtIndex:indexPath.row];
cell.directorLabel.text = [directorsarray objectatIndex:indexPath.row];
我正在使用搜索栏搜索电影标题,所以我这样做了:
//Search Filter Code
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@", searchText];
searchResults = [moviesArray filteredArrayUsingPredicate:resultPredicate];
NSLog(@"Search Results: %@", searchResults);
}
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
[self filterContentForSearchText:searchString
scope:[[self.searchDisplayController.searchBar scopeButtonTitles]
objectAtIndex:[self.searchDisplayController.searchBar
selectedScopeButtonIndex]]];
return YES;
}
然后在我的牢房里:
if (tableView == self.searchDisplayController.searchResultsTableView) {
cell.pdmTitle.text = [searchResults objectAtIndex:indexPath.row];
[...] }
所有这些都有效。我的问题是,每部电影,在 directorsArray 中都有一个对应的 Director。 如何在我的单元格中显示匹配的导演?
意思是,如果我搜索电影 03,titleLabel.text 应该是 movie03,directorLabel.text 应该是 director03。
非常感谢您的帮助!
【问题讨论】:
-
我不会针对您的情况推荐这种方法。您应该选择一个自定义模型类,您可以在其中有两个属性来存储电影名称和导演名称。然后在搜索过程中,您可以使用电影名称进行过滤,并可以直接从同一模型对象中填充导演名称,而无需担心另一个数组中的正确索引。
-
我知道,但是我只是想更多地了解数组和某些情况下的不同方法。事实上,自定义模型类将是最好的选择。非常感谢你,甘道夫。
标签: ios arrays uitableview search uisearchbar