ここで質問するのは初めてなので、十分な情報を提供していない場合は、簡単に行ってください。基本的に私の iOS アプリの一部では、ユーザーがコア データ ストアに保存される写真を撮ることができます。属性は Transformable 型で、NSManagedObject サブクラスを作成しました。これを使用して、その画像属性をユーザーが提供する新しい画像に設定するだけです。
大きなファイルを Core Data に保存するのは良くないことだとわかっているので、Core Data エンティティの画像属性の下にある [外部レコード ファイルに保存] オプションを見て興奮しました。ただし、私のアプリのパフォーマンスはそうではなく、iPhone 5 でほんの数枚の画像を読み込むのに数秒かかります (それほど時間はかからないように聞こえますが、iPhone 5 がどれほど強力かを考えると、古いデバイスではもっと時間がかかる可能性があります)。同じデータ)。
いろいろ調べてみたところ、外部レコード ファイルに保存するオプションは、iOS アプリで利用できるにもかかわらず、OS X 環境にしか適用できないという人もいます。ただし、これはAppleの「iOS 5の新機能」ドキュメントでも見ました(コアデータの下の最後から2番目の項目で、最後の近くにあります):
管理対象オブジェクトは、順序付けられた関係と属性値の外部ストレージという 2 つの重要な新機能をサポートしています。管理オブジェクト属性の値を外部レコードとして保存できるように指定すると、Core Dataはデータをデータベースに直接保存するか、管理する別のファイルに URL を保存するかを値ごとにヒューリスティックに決定します。あなたのために。
だから私の質問は、誰が正しいですか? Apple が iOS アプリにこのオプションを与える際に間違いを犯したというのは本当ですか? Mac を使用していない限り、実際には何もしません。やるべきことをしているのに、とにかくパフォーマンスが悪いのですか?
大きなファイル (画像など) をファイルとして保存し、代わりにそれらの URL をコア データ ストアに保存する方法を説明するガイドを見たことがありますが、これは基本的にこの新しいオプションが行っていること、または行うべきことであるため、これらのガイドに従うことが役立つかどうかはわかりません。
これが以前に尋ねられた場合、本当に申し訳ありません。通常、私は自分でこれを理解するのに問題はありませんが、Core Data は私にとってまったく新しいものであり、初期設定でどのようにきしむことができたのかまだわかりません. あなたが提供できる助けをありがとう!