0

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吗?

4

0 回答 0