0

iPad アプリのプログラミング中に、「動的」述語で fetchedResultsController を使用すると問題が発生します。述語への変更が無視されるようです。述語がどのように変化しても、常に最初のフェッチの結果が得られます...

iphone-env (3.1.x) でも同じコードが問題なく動作します!!

サンプル :

- (void)performSearch:(NSString *)searchText {
  self.displaySearchResults = TRUE;
  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"searchWords contains[cd] %@", searchText];
  [self.fetchedSearchResultsController.fetchRequest setPredicate:predicate];

  NSError *error = nil;
  if (![self.fetchedSearchResultsController performFetch:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
  }

  if(deviceIsIPad) {
    [self showSearchResults];
  }  
  else {
    [cookBookOverview reloadData];
  }
}

誰でも助けてくれますか?

ところで: 私のつらい英語を許してください ;-)

4

1 に答える 1

4

predicate または fetchRequest を変更するときは、常にキャッシュをクリアする必要があります

    // clear cache
[NSFetchedResultsController deleteCacheWithName:@"CacheName"];
于 2010-08-19T06:15:47.647 に答える