iPad: CoreData FetchedRequest игнорирует изменения в предикате - PullRequest
0 голосов
/ 03 июня 2010

При программировании 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];
  }
}

Может кто-нибудь помочь плз?

кстати: простите за мой болезненный английский; -)

1 Ответ

4 голосов
/ 19 августа 2010

Вы должны очищать кэш все время, когда вы меняете предикат или fetchRequest

    // clear cache
[NSFetchedResultsController deleteCacheWithName:@"CacheName"];
...