イメージの大きさによっては、新しいcoredataの「外部ストレージの使用」属性でこれを行うことができます。 私の別の回答からコピーされた内容は次のとおりです。
私たちはIO5を使用しているので、今度はディスクにイメージを書き込む必要はありません。 coredataバイナリ属性に「外部ストレージを許可する」を設定できるようになりました。りんごリリースによると、それは次のことを意味ノート:画像サムネイルのような
小さなデータ値を効率的 データベースに格納することができるが、大規模な写真やその他のメディアは、最高の ファイルシステムによって直接処理されています。 setAllowsExternalBinaryDataStorage: コアデータ は、 を直接データベースに保存する必要がある場合は、値ごとに経験則的に決定します。これにより、管理対象の オブジェクト属性の値を外部レコードとして保存することができます。または があなたのために管理する別のファイルにURIを格納します。このオプションを使用すると、バイナリ データプロパティの内容に基づいてクエリを実行することはできません。
このアプローチを使用するといくつかの利点があります。 まず、ファイルシステムに書き込むときにできるだけ早くファイルを保存します。しかし、上記の条件に当てはまる小さな画像があれば、それらはcoredata sqliteファイルに直接保存されるため、はるかに高速になります。
さらにiOS 5では、個別の管理コンテキストで作業し、バックグラウンドで子コンテキストの変更を実行することは非常に簡単です。正常に終了した場合は、この子コンテキストをメインの管理オブジェクトコンテキストにマージし、必要な処理を実行できます。
[child performBlock:^{
[childsave:&parentError]; //do this in background on child context
}];
NSPrivateQueueConcurrentTypeは「子供-MOC」を作成するためにそこにある - [1]
[リンゴのドキュメント]を参照し、少なくとも、あなたは、あなたがキャッシュに可能にするcoredataオブジェクトを操作制限し、さらに最適化することができますダウンロード完了後の処理
[1]:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385詳細については