3

私のアプリはいくつかの画像をダウンロードし、解析された JSON 値からテキスト ファイルを作成します。ダウンロードされた画像とテキスト ファイルのコンテンツは、別のビュー コントローラーでビューアーに表示されます。

アプリの最初の送信の早い段階で、アプリを送信する前にダウンロードしたファイル (Documents ディレクトリにダウンロードされたファイル) を処理するのを完全に忘れていたため、拒否されました。しかし、それ以来、私は自分のアプリが可能な限り完璧であることを確認することに力を入れてきました。つまり、データ ストレージ ガイドラインとヒューマン インターフェース ガイドラインを何度も読み直して、アプリを再提出したときに拒否されないようにしています。

したがって、データとメモリの処理に関していくつか質問があります。

以前:インターネットからダウンロードしたすべてのコンテンツを Documents ディレクトリに保存していました (これは間違いであることがわかりました)。次に、ダウンロードした画像とテキストのパスを持つ plist ファイルを作成していました。したがって、別のビュー コントローラーで行う必要があったのは、plist ファイルを開き、画像とテキスト ファイルのパスを読み取り、コンテンツを読み込んでユーザーに表示することだけでした。

View Controllerを閉じたときにダウンロードしたファイルを削除するのを忘れていました(ただし、次のアプリの実行で既存のファイルを上書きしていました). その結果、アプリを起動すると、前のセッションから約 15 mb のデータが既に存在し、ユーザーが別の検索を行ったときに上書きされることはありませんでした。

後:次の手順を実行しました: a) 今、すべてのインターネット データを「tmp」ディレクトリにダウンロードしています。2 番目のビュー コントローラーが閉じられ、ユーザーがすべてのコンテンツを表示したら、「tmp」ディレクトリから plist ファイルを含むすべてのファイルを削除します。

b) アプリの起動時に、以前の起動から残っているファイルがあるかどうかも確認します (アプリが終了した場合)。以前のセッションからダウンロードしたファイルが見つかった場合は、それらを削除します。

c) ユーザーが特定のデータをお気に入り (お気に入りのニュース記事など) に追加すると、対応する画像とテキストが /Documents/Data ディレクトリに保存され、パスを格納する /Documents ディレクトリにお気に入り PList ファイルが作成されます。ユーザーのお気に入りのデータの。ユーザーがテーブルビューから記事を削除しない限り、この plist ファイルとお気に入りファイルは削除されません。

Q 1)上記は良いアプローチですか? これらのコンテンツを /Library/Caches に保存する必要がありますか、それとも /tmp で十分ですか?

Q 2)私は iCloud を使用していませんが、同時に、ユーザーがお気に入りを持っている場合、それらを iCloud にバックアップする必要があることを確認したいと考えています。それとも、お気に入りのファイルに「バックアップしない」属性を使用する必要がありますか?

EDITS Alan Duncan - メモリ リークの回答に感謝します。

メモリ リークに関する質問を削除しました。データ ストレージに関する質問は、どちらも Apple のヒューマン インターフェイス ガイドラインに関連しています。しかし、残りの質問のいずれかに答えることができれば、それは価値があります.

4

1 に答える 1

2

ドキュメント ディレクトリは、ユーザーが自分で作成したファイル、または後で再作成できないファイルを格納するために存在します。そのため、これらのファイルは iCloud にバックアップされるか、ユーザーが iTunes バックアップを作成するときにバックアップされます。ユーザーがアプリをアンインストールしない限り、ドキュメント フォルダーはクリアされません。

キャッシュ ディレクトリは、デバイスにキャッシュするファイルを保存するために存在しますが、ダウンロードした画像など、後で簡単に再作成できます。デバイスの空きディスク容量が不足している場合や、もちろんユーザーがアプリをアンインストールした場合、キャッシュ フォルダーは OS によって自動的に消去されます。

一時ディレクトリは、セッション中に一時的にファイルを保存するために存在します。ユーザーがアプリを閉じると、このフォルダーは自動的にクリアされます。

ユーザーのお気に入りの記事は、画像と共にキャッシュ ディレクトリに保存することを検討する必要があります。これらの記事は、後でいつでも再度ダウンロードできるからです。ユーザーがオフライン モードでも (Pocket アプリのように) 画像付きの記事全体を表示できるようにする必要があることを明示的に述べていない限り、それらを plist と共にドキュメント ディレクトリに保存する必要があります。検索結果は一時ディレクトリに保存する必要がありますが、ユーザーが何もしないのに検索結果をディスクに保存する理由がよくわかりません。

于 2012-09-22T10:07:45.347 に答える