【发布时间】:2012-09-03 15:12:42
【问题描述】:
我已经设置了一个NSFetchRequestController,它在其initWithFetchRequest: 参数中使用三个预计算机对象ID 作为NSPredicate。
NSManagedObjectContext *moc = [[self managedDocument] managedObjectContext];
[self setFetchedResultsController:[[NSFetchedResultsController alloc]initWithFetchRequest:fRequest
managedObjectContext:moc
sectionNameKeyPath:nil
cacheName:nil]];
我的问题是,一旦我设置了我的NSFetchedResultsController,当新数据在数据库中可用时,有没有办法修改控制器使用的NSFetchRequest。我注意到请求是只读的,所以就这样了,还有其他可用的选项吗?
编辑:
我想我需要更改整个请求,但也许我可以使用现有的 NSFetchedResultsController 和现有的 NSFetchRequest 设置一个新的 NSPredicate,这样可以吗?
【问题讨论】:
-
据我所知,没有改变 NSFetchedResultsController 的方法。你必须创建新的控制器。
-
我刚刚尝试了我在 EDIT 中所暗示的内容:它似乎允许在将 performFetch 消息发送到 NSFetchedResultsController 以显示更新之前修改 NSFetchReqest 以包含新的 NSPredicate。
标签: iphone cocoa-touch nsfetchedresultscontroller nsfetchrequest