私のアプリはいくつかの画像をダウンロードし、解析された 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 のヒューマン インターフェイス ガイドラインに関連しています。しかし、残りの質問のいずれかに答えることができれば、それは価値があります.