【iOS】Core Dataでfetchされたデータの絞り込み検索(未解決)
predicateWithFormatが、おそらくSQLでいうところのwhere句に相当するのでは?というところまではあたりはつけたが...
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { NSString *query = self.searchDisplayController.searchBar.text; if (query && query.length) { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", query]; [self.fetchedResultsController.fetchRequest setPredicate:predicate]; [NSFetchedResultsController deleteCacheWithName:@"UserSearch"]; } NSError *error = nil; if (![self.fetchedResultsController performFetch:&error]) { // Handle error NSLog(@"Unresolved error %@, %@", error, [error userInfo]); exit(-1); // Fail } }
上記コードでビルドしてシミュレートした時。Sを入力した段階では、2件あるレコードともに同じなのだけど、このあとtを入力したら、あっというまにクラッシュ。
キャッシュが悪さをする的な記事がwebにあったのだけど、
[NSFetchedResultsController deleteCacheWithName:@"UserSearch"];
これでキャッシュをデリートしているわけだし...
んー