在编写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];
}
}
任何人都可以帮助PLZ吗?
顺便提一下:原谅我痛苦的英语; - )答案 0 :(得分:4)
更改谓词或fetchRequest
时,必须始终清除缓存 // clear cache
[NSFetchedResultsController deleteCacheWithName:@"CacheName"];