私はNSFetchedResultsControllerDelegate
のTableViewControllerを持っています。このテーブルが表示しているデータは別のコンテキスト(RestKit)で更新され、通知時にマージされます。この時点で、メインスレッドのManagedObjectContext
でクエリを実行すると、他のスレッドによって更新されたデータが表示されます。NSFetchedResultsController別のコンテキストからの変更をマージした後でテーブルセルを更新するために退出する
コンテキストのマージが発生すると、NSFetchedResultsControllerDelegate
であるTableViewControllerはcontroller:didChangeObject:atIndexPath:forChangeType:newIndexPath
メッセージを取得します。私が持っている問題は、オブジェクト(didChangeObject)は、まだ古いデータを持っているということです。私はこのメッセージを呼んでいるものは、現在そのオブジェクトを私に与えるために現在のNSFetchResultsController
を使用しているので、これはそうだと思います。
NSFetchResultsController
のfetchObjectがコンテキストマージから更新されなかったのはなぜですか?コンテキストマージによってfetchObjectsを更新してこのフェッチをもう一度実行する方法はありますか?