私は10k以上のテーブルビューを表示したいアプリに取り組んでいます。cs193pからfetchedresultcontrollerを使用していますが、うまく機能します。読み込みとスクロールはかなり速いです。それぞれの文字で検索できるようにしたいと思います。
検索バーとデリゲートを設定し、検索バーの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"];
}
実際にデータを再フェッチせずに既存のクエリをフィルタリングする方法はありますか?
どんな提案でも大歓迎です!