2012-01-21 5 views
2

私のiOSアプリケーションはレビュー中ですが、iOS Data Storage Guidelinesに関しては拒否されました。最後に、私のCore Dataデータベース(sqlite)が/Documentsフォルダーにあるため、これは拒否されました。私は、このフォルダを使用するだけでよいことを認識していました。アプリケーションでデータを再作成できませんでした。とにかくそれを置く理由は、私のデータベースのエンティティの1つに、特定のニュースが読み込まれているかどうかを示す属性が含まれていたからです。この情報は再作成できません。これはデータベースを/Documentsフォルダに入れるには不十分ですか?iOSコアデータ:データはいつ再作成可能ですか?

もう1つのことは、ニュースアイテムが読み込まれたかどうかを視覚化するために、アプリケーションの現在のバージョンでこの値を使用していないことです。だから、審査チームに、この属性とそれがドキュメントフォルダに置かれるべき理由についての議論を伝えるべきですか?それとも、それを/Library/Cache/に移動すればよいですか?

答えて

5

アプリ審査チームは、データを分割することを望みます。再作成可能な部分をキャッシュフォルダに保存し、ドキュメントフォルダで再作成できないものを保存します。理論的には再作成可能なものが少しあります。誰もタイトルや日付スタンプに気づくことさえありませんが、長いテキストドキュメント、ビデオ、オーディオ、画像はキャッシュフォルダに保存する必要があります後で再びダウンロードされます。

あなたがこれを行うことができますカップル、さまざまな方法があります。

  1. ストアのキャッシュフォルダにダウンロードされたコンテンツは、唯一自分のコアデータのデータベースにコンテンツのファイル名を入れて(または何か他のものからファイル名を計算し、ダウンロードされたURLのSHA-1ハッシュのように)。あなたのコードがキャッシュにないコンテンツを再ダウンロードすることを確認してください。

  2. 1つのストアコーディネーターで2つのコアデータストアを使用します。エンティティの属性を2つの店舗に分割することはできないため、エンティティの一部を半分に分割する必要があるかもしれません。また、ある店舗のオブジェクトから別の店舗のオブジェクトに関係を作成することもできないため、代わりにオブジェクトID URIを保存する必要があります。詳細については、コアデータプログラミングガイドの"Relationships and Fetched Properties" sectionにある「クロスストア関係」を参照してください。

何をしても、いつでもiOSによってキャッシュフォルダが消去されることがあります。あなたのキャッシュフォルダ内のファイルが消えたことを準備してください。そのような場合は、ユーザーがファイルを要求したときにファイルを再ダウンロードする必要があります。

+0

私は第2の解決策が私の問題に最もよく合うと思います。私は2つのコアデータモデルを接続しようとするといくつかの問題に直面しています。私に説明できるガイドや何かを知っていますか? – dhrm

関連する問題