0

iCloud で CoreData を利用した iOS 5.1 アプリケーションがあります。ユーザーは写真を撮ってiCloudに保存することもできます。現時点では、写真撮影のイベントを表すエンティティに、YES または NO の属性画像のみを保存しています。これは一種の日記であるとしましょう。

YES の場合、パスを計算して画像を取得できます。実際には、UITableCell で使用する小さいサイズ、iPhone 用の中サイズ、iPad 用の大きいサイズの 3 つの jpg 画像が保存されています。最大サイズは、最大で約 100kb です。

すべて正常に動作しますが、たとえば、画像を iCloud に送信するかどうかを決定したり、削除の場合は画像を削除したり、ローカルに移動したりできるかどうかを判断するなど、アプリに重いロジックを組み込む必要がありました。

私の開発人生では、画像やバイナリを DB に保存することを選択したことはありませんが、今回は、バックグラウンドで発生する CoreData 同期によってアプリがより堅牢になり、コード行をいくつか削除できるかどうかを考えていました。アイデアは、エンティティに 3 つの属性を追加するか、おそらく怠惰な問題のために、必要に応じて読み込まれる別のエンティティに追加することです。

ありがとう

4

2 に答える 2

1

データベースに画像データを保存することは絶対に控えます。サムネイルをデータベースに保存すると、うまく機能するアプリがありました。iCloudに移行しようとすると、画像データが原因で同期時間が大幅に増加していることに気付きました。データベースが複数のエントリを取得する場合、私は数秒から数分話しています。現在、すべてをフォルダーに保存し、さまざまな方法をテストして、ユーザーがクラウドに保存する画像と保存しない画像を決定できるようにしています。

あなたのデータ入力が小さいままであるならば、私はそれが一撃の価値があるかもしれないと思います、しかし開発は知っています

于 2012-06-17T05:25:24.350 に答える
0

少なくとも小さな画像をDBに保存するのは理にかなっていると思います。これは非常に効率的であり、ネットワーク集約的になりすぎず、最も重要なこととして、iCloud ストアが大きくなりすぎないようにする必要があります。

Apple は、iCloud での「責任ある」データ ストレージについて非常に頑固です。iOS プログラミング ガイドのセクション「責任ある iCloud アプリになる」を参照してください。そこに記載されています

iCloud ストレージ機能を利用するアプリは、そこにデータを保存する際に責任を持って行動する必要があります。各ユーザーのアカウントで使用できるスペースは限られており、すべてのアプリで共有されます

したがって、iCloud コア データ ストアに大きな画像を保存することは控えたいと思います。

于 2012-05-31T21:07:06.880 に答える