非法改变了NSFetchedResultsController的获取请求

yes*_*bot 4 iphone cocoa-touch core-data objective-c ios4

我得到以下异常是在iOS 4.0下引发但不在3.0下使用核心数据.我正在使用来自核心数据存储的数据填充tableview控制器.然后向下钻取一行并请求该行的详细信息并将其传递到详细视图.

致命错误:部分信息的持久缓存与当前配置不匹配.您已经非法改变了NSFetchedResultsController的获取请求,其谓词或其排序描述符,而无需禁用缓存或使用+ deleteCacheWithName:

rob*_*jam 22

尝试禁用缓存.创建时NSFetchedResultsController,传递nil为缓存名称.

myFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:sectionNameKeyPath cacheName:nil];
Run Code Online (Sandbox Code Playgroud)

  • 如果已设置缓存,则不得更改提取请求.请参阅此[section](http://developer.apple.com/library/ios/#documentation/CoreData/Reference/NSFetchedResultsController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40008227-CH1-SW34)文件.您可以在修改谓词之前禁用缓存或将其删除. (3认同)