搜索我有两个数组:的iOS在一个阵列,通过匹配指数从另一
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];
[...] }
所有这一切工作。我的问题是,每部电影都有一个相应的导演阵容。 我该怎么做才能显示我单元格中的配对导演?
含义,如果我搜索电影03,titleLabel.text应该是movie03,directorLabel.text应该是director03。
非常感谢您的帮助!
我会我不推荐这种方法适合你的情况。你应该选择一个自定义模型类,你可以有两个属性来存储电影名称和导演名称。然后在搜索过程中,您可以使用电影名称进行过滤,并且可以直接从相同模型对象填充导演名称,而无需担心其他阵列中的正确索引。 – Gandalf 2014-12-04 11:55:25
我知道,但是我只是想了解一些关于阵列和一些情况的不同方法。事实上,自定义模型类将是最好的选择。 非常感谢甘道夫。 – PabloM 2014-12-04 22:38:49