NSPredicate问题使用numberOfRowsInSection方法

我正试图实现searchUITableView。 首先,我从 – (void)viewDidLoad方法中填入DB历史时期的数组。

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

tableCells中的string以像1789-1798这样的date开始。 当我试图search信息时,search方法仅适用于第一个数字….例如,我有一个单元格的信息以数字5开头。当我inputUISearchBar数字5时,该方法返回我开始的logging当我input两个数字时,方法返回“没有结果”。 问题在哪里,哪里出错了?

那我自己解决了这个问题 我搞砸了cellForRowAtIndexPath方法。