Проблема NSPredicate с использованием метода numberOfRowsInSection - PullRequest
0 голосов
/ 04 января 2012

Я пытаюсь реализовать поиск для UITableView.Сначала я заполняю свой массив исторических периодов из БД в - (void) метод viewDidLoad.

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;

}

И в контроллере представления UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate

Строки в ячейках таблицы начинаются с дат, например 1789-1798.Когда я пытаюсь найти информацию, методы поиска работают только по первому номеру .... например, у меня есть ячейка с информацией, начинающейся с цифры 5. Когда я набираю UISearchBar цифру 5, метод возвращает мне запись, начинающуюся с1. Когда я набираю два числа, метод возвращает мне «нет результатов».Где проблема и где я ошибся?

1 Ответ

0 голосов
/ 05 января 2012

Ну, я решил эту проблему самостоятельно.Я облажался в cellForRowAtIndexPath meth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...