Я пытаюсь реализовать поиск UITableView. Сначала я заполняю массив исторических периодов из метода DB in - (void) viewDidLoad.Проблема с NSPredicate с использованием метода numberOfRowsInSection
self.periodsArr=[dbAccsess getPeriods:subCountryID];
self.searchBar = [[[UISearchBar alloc]initWithFrame:
CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)] autorelease];
searchBar.delegate=self;
self.tableView.tableHeaderView = self.searchBar;
searchBar.keyboardType=UIKeyboardTypeNumberPad;
self.searchController = [[[UISearchDisplayController alloc]
initWithSearchBar:self.searchBar contentsController:self] autorelease];
self.searchController.searchResultsDataSource = self;
self.searchController.searchResultsDelegate = self;
Тогда я пытаюсь реализовать метод
- (NSInteger)tableView:(UITableView *)utableView numberOfRowsInSection:(NSInteger)section
{
if(utableView==self.tableView)
{
return [self.periodsArr count];
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"period beginswith[c] %@", self.searchBar.text];
filteredItems=[[NSMutableArray alloc]init];
self.filteredItems=[self.periodsArr filteredArrayUsingPredicate:predicate];
return filteredItems.count;
}
И в View Controller UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate
Строки в tableCells начинают с датами, как 1789-1798. Когда я пытаюсь выполнить поиск информации, методы поиска работают только для первого номера .... например, у меня есть ячейка с информацией, начинающейся с номера 5. Когда я печатаю в строке 5 UISearchBar, метод возвращает мне запись, начинающуюся с 1. Когда я печатаю два числа, метод возвращает мне «никаких результатов». Где проблема и где я ошибся?
Является ли ваш «период» экземпляром NSString? – LordTwaroog
@LordTwaroog Да, это так. – NCFUSN
Попробуйте отладить, если self.filteredItems содержит элементы, которые вы хотите. Кроме того, я бы переместил этот код из метода numberOfRowsInSection: в более подходящее место. Позаботьтесь о возможной утечке памяти в 'filterItems = [[NSMutableArray alloc] init];' - здесь вы не выпускаете никакого возможного предыдущего значения. – LordTwaroog