Мои цели - это строка поиска над моей таблицей, которая ищет track_tiles в словаре.Эта таблица была построена в результате анализа данных в NSDictionary.Мой словарь для таблицы выглядит так ...
tracksDict: {
"Cold Calling" = (
"<Track: 0x5f39bc0>",
"<Track: 0x5f3a3e0>",
"<Track: 0x5f3a990>",
"<Track: 0x5f3ae80>"
);
"Gate Keeper" = (
"<Track: 0x5f3b3e0>",
"<Track: 0x5f3b980>",
"<Track: 0x5f3bed0>"
);
"Hot Calling" = (
"<Track: 0x5f3c390>"
);
}
Ниже приведена моя попытка создания searchTable ...
- (void) searchTableView {
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
searchArray = listOfItems;
NSLog(@"Sorted: %@", searchArray);
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"track_title contains %@", searchText];
[searchArray filterUsingPredicate:predicate];
[copyListOfItems addObjectsFromArray:searchArray];
[searchArray release];
searchArray = nil;
}
Я выяснил, как использовать NSPredicate для поиска в треке.track_title.Но если я удаляю свой текущий поиск (изменяю searchText), то происходит сбой.
Например, , если я ищу "pro".Новый массив copyListOfItems является правильным.С двумя предметами в моем массиве.Но если бы я удалил «о» в про или нажал «поиск», он вылетал.Мне нужен какой-то цикл, который решает эту проблему.Пожалуйста и спасибо.