我CoreData
每隔一段时间就会收到一个奇怪的错误:
CoreData:致命错误:部分信息的持久缓存与当前配置不匹配。你在没有禁用缓存或使用 +deleteCacheWithName 的情况下非法改变了 NSFetchedResultsController 的获取请求、谓词或排序描述符:
我发现另一个 Stackoverflow 线程说将缓存设置为 nil,我已经这样做了,但这并没有解决错误:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
错误来自我的getData
方法,该方法返回获取结果的数组。我经常调用这个方法,因为我想检查计数,并更新一个 tableView:
+ (NSArray *)getData {
// Fetch Data
NSError *error = nil;
if (![[[AppDelegate instance] fetchedResultsController] performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return [[AppDelegate instance].fetchedResultsController fetchedObjects];
}//end
为什么这会导致错误?这是从 中获取更新的对象数组的不正确方法fetchedResultsController
吗?