У меня проблема с поисковым кодом. У меня есть NSMutableArray, называемый searchedData
, который содержит NSDictionaries (по одному на объект). Вот код поиска, который у меня сейчас есть:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[tableData removeAllObjects]; // remove all data that belongs to previous search
if([searchText isEqualToString:@""]||searchText==nil) {
[tableView reloadData];
return;
}
int i = 0;
while (i < [dataSource count]) {
NSDictionary *coolDict = [searchedData objectAtIndex:i];
NSString * title = [coolDict objectForKey:@"TITLE"];
NSString * authorString = [coolDict objectForKey:@"AUTHOR"];
NSRange titleRange = [[title lowercaseString] rangeOfString:[searchText lowercaseString]];
NSRange authorRange = [[authorString lowercaseString] rangeOfString:[searchText lowercaseString]];
if (titleRange.location != NSNotFound || authorRange.location != NSNotFound)
[tableData addObject:title];
i++;
}
[tableView reloadData];
}
Он находит количество записей, затем переходит к каждой записи, находит объекты для ключей «TITLE» и «AUTHOR», а затем отображает записи в UITableView, если есть совпадение.
Проблема в том, что он никогда ничего не отображает, даже если есть совпадение.
Я знаю, что таблица / словари не являются нулевыми (у меня есть NSLogged it), поэтому я не знаю, почему это не работает.