0
在编写iPad应用程序时,我只是用带有“动态”谓词的fetchedResultsController遇到麻烦。似乎谓词的变化被忽略了。无论谓词如何变化,我总是得到第一次取数的结果...iPad:CoreData FetchedRequest忽略谓词变化
在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?
顺便说一句:请原谅我痛苦的英语;-)
我可以看到你是如何创建fetchedSearchResultsController所有时间(这样我就可以看到什么你正在使用的cacheName)?它可能会重用缓存,因为在测试缓存一致性时不考虑谓词。尝试使用deleteCacheWithName:清除缓存,每次调用setPredicate: – smountcastle 2010-06-03 14:34:19
bingo时,似乎清除了适当的缓存,修复了我的问题! THX A LOT ... – Michael 2010-06-03 15:28:31