我有一个NSFetchedResultsControllerDelegate
的TableViewController。此表显示的数据将在另一个上下文(RestKit)中更新,并在收到通知后合并。此时,如果我在主线程的ManagedObjectContext
上运行查询,我会看到另一个线程更新的数据。
当上下文合并发生时,TableViewController(NSFetchedResultsControllerDelegate
)甚至会收到controller:didChangeObject:atIndexPath:forChangeType:newIndexPath
消息。我遇到的问题是对象(didChangeObject)仍然具有旧数据。我想是这样的,因为无论是什么调用此消息只是使用当前NSFetchResultsController
给我这个对象。
为什么NSFetchResultsController
的fetchObjects不会从上下文合并中更新?有没有办法让上下文合并更新fetchObjects并再次执行此获取?
答案 0 :(得分:4)
答案是来自更改的合并将NSManagedObject的数据标记为错误,因为它已过时。默认情况下,过期间隔设置为无限。我会赞赏我在哪里找到这些信息,但我现在找不到它。无论如何,像这样设置NSManageObjectContext允许该上下文立即查看更新的信息。
[__managedObjectContext setStalenessInterval:0];