1

オンライン検索からDBにたくさんの画像を保存するアプリに取り組んでいます。一度に 5000x4 の画像が DB に格納されると、アプリがクラッシュします。私が知りたいのは、データベースが特定の (制限された) サイズを超えているのか、それとも DB で実行されているアクティビティが多すぎてクラッシュするのかということです。

PS:シミュレーターでうまくいきました。

4

1 に答える 1

1

1) データベースの合計サイズが数百 MB に過ぎない場合は、イメージ用に SQL でサポートされた Core Data リポジトリを安全かつ効果的に使用できます。

2) ギグが近づいてきたら、大きな (またはすべての) 画像をファイルに保存し、Core Data を使用して画像への参照 (ファイル パスまたは URL) を保持する必要があります。これを行う方法は(ios 5.1以降の場合)、「Application Support」ディレクトリ内にディレクトリを作成し(作成する必要がある場合があります)、iCloudバックアップに含まれないようにマークし、そこに画像を保存します. このようにして、大量のデータを保持できます (ユーザーが動揺してアプリを削除しないと仮定した場合)。

編集:あなたのコメントを読みました。多数の小さい (8K) イメージを想定して、問題が一度にすべてアクティブになる場合 (つまり、エンティティ属性を長時間ではなく一度に設定している場合) は、 「refreshObject:mergeChanges:」を使用したエンティティ「障害」。これについては、コア データ プログラミング ガイドで、メモリ フットプリントを削減するためのその他のヒントとともに読むことができます。

于 2012-09-11T11:58:32.283 に答える