我已经设置了一个NSFetchRequestController,它在其initWithFetchRequest:参数中使用三个计算机前的objectID作为NSPredicate。
NSManagedObjectContext *moc = [[self managedDocument] managedObjectContext];
[self setFetchedResultsController:[[NSFetchedResultsController alloc]initWithFetchRequest:fRequest
managedObjectContext:moc
sectionNameKeyPath:nil
cacheName:nil]];我的问题是,一旦我设置了我的NSFetchedResultsController,当数据库中有新数据可用时,有没有办法修改控制器使用的NSFetchRequest。我注意到请求是readOnly的,所以这就是问题所在,有没有其他可用的选项?
编辑:
我在想,我需要更改整个请求,但也许我可以使用现有的NSFetchedResultsController和现有的NSFetchRequest设置一个新的NSPredicate,这是不是这样做的方法?
发布于 2015-02-20 01:27:17
修改获取请求的
您不能简单地更改fetch请求来修改结果。如果要更改获取请求,则必须:
如果您正在使用缓存,请删除它(使用deleteCacheWithName:)。
通常,如果要更改fetch请求,则不应使用缓存。
更改获取请求。(修改谓词)
调用performFetch:。
https://stackoverflow.com/questions/12250420
复制相似问题