2009-05-21 12 views
0

コアデータチュートリアルを終了します。NSFetchedResultsControllerを使用して変換しようとしています。既存のデータを照会できるようにしましたが、最初に行を追加すると、tableView:cellForRowAtIndexPathはNSFetchedResultsController.objectAtIndexPathを呼び出しますが、それでも新しいゼロの代わりに古いゼロオブジェクトが返されます。そのデータをフラッシュするために必要なことはありますか?NSFetchedResultsControllerを使用してクエリを再起動するには

答えて

2

フェッチされた結果コントローラのデリゲートとしてビューコントローラを設定し、NSFetchedResultsControllerDelegate protocolを実装しましたか?その場合は、フェッチを再度実行する必要はありません。フェッチされた結果コントローラは、変更に応じてデリゲートメソッドを呼び出します。

(注、ただし、テーブルビューのデータソースメソッドの実装に関するNSFetchedResultsController documentationに注意)実際

+0

これは正解です。少なくとも毎回フェッチをやり直すよりは良いことですが、didChangeObject:atIndexPath:forChangeType:newIndexPathが終了した直後に[managedObjectContext save:&error]で未知の例外が発生します。 –

+0

例外とはどのようなものですか? – mmalc

2

誰もまだ答えていないので、私は推測を追加します。 this linkのように見えるかもしれません。これらの2つの方法のいずれかを呼び出すと、あなたのための更新プログラムを取得する必要があることを示唆している。

-[NSManagedObjectContext processPendingChanges] 
-[NSManagedObjectContext save] 

おそらくdocumentation for NSManagedObjectContextが有用であろう。

+0

は、私はすでに[managedContext保存】していました。しかしそこには手がかりがあった。 –

2

Naafが提供したリンクに手掛かりがありました。記憶を行った後、私は[NSFetchedResultsController performFetch]をもう一度呼び出す必要があったことが分かります。

関連する問題