搜索我有兩個數組:的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