我工作的应用,在那里我想显示用10k +我使用从cs193p fetchedresultcontroller一个的tableview和它工作得很好。加载和滚动非常快。我希望能够用每个字母进行搜索。
我安装搜索栏和代表,并与每个字母的搜索栏textdidchange方法重载fetchresults控制器。它的工作原理,但有延迟,无论如何,使其更快。 这是我textdidchange方法如何实现更快的大型核心数据搜索设置
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
//NSLog(@"%@",searchText);
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"People"];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"fullname" ascending:YES]];
[NSFetchedResultsController deleteCacheWithName:@"peopleCache"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(firstname contains[c] %@)",searchText];
request.predicate = predicate;
self.fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:request managedObjectContext:self.peopleDatabase.managedObjectContext sectionNameKeyPath:nil cacheName:@"actorCache"];
}
有什么办法来筛选现有查询,而不实际,重新获取数据?
任何建议将不胜感激!
感谢您的答复。该视频非常有帮助,我会尝试实施一些建议。我试图将setFetchBatchSize设置为50,但是当我在乐器中运行它时,仍然会获得20k次提取。不知道为什么会发生。 – Yan 2012-04-25 02:37:08