Я пытаюсь найти массив словарей. Каждый словарь имеет разные ключи и значения, такие как Имя, Возраст и Объединение.
Я выполняю поиск на основе учебника по следующему коду:
- (void) searchTableView {
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in listOfItems)
{
NSArray *array = [dictionary valueForKey:@"Name"];
[searchArray addObjectsFromArray:array];
}
for (NSString *sTemp in searchArray)
{
NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length != 0)
[copyListOfItems addObject:sTemp];
}
[searchArray release];
searchArray = nil; }
Поиск идет хорошо, и данные отображаются правильно.
Проблема в том, что когда я выбираю один из результатов, он указывает на неправильное местоположение.
Вот как выбранная строка направляется в подробный вид:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *selectedName = nil;
if(searching)
selectedName = [copyListOfItems objectAtIndex:indexPath.row];
else {
selectedApp = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"Name"];
}
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
DetailViewController *controller = [[DetailViewController alloc] initWithAppData:[dao libraryItemAtIndex:indexPath.row] nibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
controller.selectedName = selectedName;
[self.navigationController pushViewController:controller animated:YES];
[controller release];
[DetailViewController release];
}
Мне нужен способ указать правильное местоположение.
Если бы я мог найти индекс Имени, который я ищу, в основном массиве, это было бы замечательно.
Было бы очень признательно, если бы вы могли помочь мне с этим.