2009-07-23 11 views
3

Apple iPhone Core Data Recipesサンプルアプリを見ると、画像ファイルがコアデータオブジェクトに格納されます。今私は3GSでビデオをキャプチャした話もするつもりです。問題は、iPhoneのCore Dataで画像を保存し、次に動画を保存することが賢明かどうかです。iPhoneのコアデータに大きなファイル(例:画像/動画)を保存

さらに、メモリにローディングが追加されています。明らかに、レシピで使用されているデザイン(つまり、別のモデルに画像を保存する)では、コアデータに「フォールディング」(怠惰なローディングを意味するように聞こえる)を行うことができますが、それが本当かどうかはわかりません。ここで探し

http://developer.apple.com/iPhone/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdPerformance.html#//apple_ref/doc/uid/TP40003468-SW5一般的なココアのアドバイスは、別々のファイルを使用しているようだ....

答えて

10

それは依存します。 CoreDataは、優れたパフォーマンスで大きなブロブを格納することができます。大きな落とし穴があります:

  1. それらの塊はいつもあなたに障害が発生していない可能性がありますエンティティのプロパティは、あなたが尋ねるまであなたがプロパティで故障していないCDを教えてエンティティを使用するたびに確認してくださいするように注意する必要がある場合。関係を介してアクセスするまでフォールトを起こさない、独自のエンティティ内のブロブを分離することで、その問題を回避することができます。
  2. 永続ストアは1つのモノリシックファイルです。つまり、その中に何かが変更された場合、バックアップ中にすべてをコピーする必要があります。これにより、iTunesと同期している間に電話機のバックアップにかかる時間が長くなることがあります。これは、一部のメタデータを変更したために、すべての画像をコピーする必要があるためです。

    最初の問題は通常大きな問題ではないので、注意する必要があります。データが効果的に読み込み専用であれば2番目の問題はありませんが、永続的なストアに数百メガバイトのデータがある場合、それはかなりひどいユーザーエクスペリエンスです。

+0

OK ...そうですね、私は「しない」と言います... –

+0

OK。私は私の計算機(25.000枚の写真を含む)の私のデータベースに2ギガバイトを持っていて、自動バックアップはお尻の痛みです。写真をCore Dataデータベースから、自動的にバックアップされないディレクトリに移動する必要があるようだ。 – Bjinse

0

に私の答えを参照してください:あなたは今、オプション「外部ストレージことができます」を使用してコアデータで大きなファイルを保存することができ

Can I access the files used for external binary storage in Core Data?

。これに関する唯一の問題は、もはやパスによる実際のファイルへのアクセスをもう持たないことです。私は '創造的な'解決策(ベストプラクティスは誰でも推測しているかどうか)を考え出しましたが、コアデータを使用してファイルを管理しながら、そのパスでREALファイルにアクセスすることができます。

関連する問題