0

現在UITableView、データソースがであるがありNSFetchedResultsControllerます。最も重要なことはNSFetchedResultsController、デリゲートメソッドを介して、変更があった場合にテーブルを自動的に更新することです。ただし、エンティティを取得するためにフェッチを実行する必要はなくなりました"Pictures"。今はそれを呼び出します。私には、という別のエンティティがあり、Folderfolders関係がPicturesあるので、すべてfolderに。がありNSSet picturesます。

picturesしたがって、特定のに属するすべてをフェッチする代わりに、これでfolder実行できますfolder.pictures。これにより、必要なものが返され、それを配列に割り当てて、tableViewソースとして設定できます。ただし、これではテーブルの自動更新は行われませんNSFetchedResultsController

NSFetchedResultsController私の質問は、フェッチを実行せずに(つまり、テーブルを自動的に更新するデリゲートメソッド)の機能をどのように使用できるかということです。NSSet目的のを持っているので、もうフェッチする必要はありませんNSManagedObjects

4

1 に答える 1

2

フェッチされた結果コントローラーの何が問題になっていますか?それを保持し、関係セットにもドット表記を使用してください。両方の長所を活用できます。

フェッチされた結果コントローラーの本当の利点は実際には隠されています。オブジェクトをフェッチします()。foldersただし、すべてのリレーションシップ属性をフェッチするわけではありません(pictures)。これは障害と呼ばれます。これは、コアデータが必要に応じてバックグラウンドでデータを取得することを意味します。速度と良好なメモリ使用量のために自動的に最適化されます。たとえば、データソースの潜在的に巨大な配列を一度にすべてメモリに配置する必要はありません。これは、配列では避けられないことです。

したがって、あなたは本当にFRCを取り除きたくありません。彼女はあなたの友達です。彼女に忠実であり続けなさい。;-)

于 2012-04-10T18:51:30.257 に答える