我的表格视图有一个搜索栏,但我没有使用 aUISearchDisplayController
来显示结果,而是使用我的表格视图。
我的代码似乎可以工作,但我想知道这是否可以接受。当用户开始输入时,我添加一个谓词来执行搜索,当用户删除搜索栏中的文本时,我将 nil 取出来NSFetchResultsController
获取所有内容。
我在这里做错了什么,还是有更好的方法来做到这一点?
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if ([searchText length] == 0) {
_fetchedResultsController = nil;
}
else {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];
[[_fetchedResultsController fetchRequest] setPredicate:predicate];
}
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
[[self tableView] reloadData];
}