2011-07-14 26 views
3

私は、Mac App Storeに申請書を提出する必要があり、これにより、アップルから拒否されてしまったでは、Mac OS Xのファイルシステムの文書に準拠していないNSTemporaryDirectory()はMac App Storeガイドラインに違反していますか?

アプリがで

を を拒否される理由からガイドラインは、以下のディレクトリにファイルを書き込むことが示唆

  • 〜/ライブラリ/ Application Support/{アプリ識別子}
  • 〜/ライブラリ/ {アプリ識別子}
  • 〜/ライブラリ/キャッシュ/ {アプリ識別子}

が、私のファイルは、キャッシュファイル一時的なものであり、それはに私のファイルを書き込むことができますNSTemporaryDirectory()これはガイドラインに違反しますか?

答えて

7

NSTemporaryDirectory()は、一時ファイルに適しています。

~/Library/Application Support/{app-identifier}

このディレクトリは、アプリケーションによって実行時に生成された恒久的なファイルのためのものです。

~/Library/{app-identifier}

このディレクトリには、すべてのアプリで作成されたほとんどのファイルのためのキャッチです。あなたはこのディレクトリの所有権を持っています。

~/Library/Caches/{app-identifier}

このディレクトリには、あなたのアプリが再作成することができ、一時ファイルのためのものですが、それはできるだけ長くディスク上に維持したいと考えています。ここのファイルは、OSによって削除されることがあります。

+0

は'いくつかのケースでは、 'nil'を返すために危険です。代わりに '〜/ Library/Caches/{app-identifier}'を使用しています。これは、OSXにキャッシュファイルを保存するのに適しています。ありがとう – meddlesome

+3

いずれにせよ、それらのパスをハードコーディングするのではなく、 'NSSearchPathForDirectoriesInDomains()'の結果を使うべきです。 :) –

2

これらのパスをすべて正しいシステム関数を使用して返す単純なライブラリを作成しました。これらのパスが存在しない場合は自動的に作成されます(〜/ Application Support/AppNameなどの場合と同様です)。 )。 `NSTemporaryDirectory()を使用して、いくつかのコメントで読んで

https://github.com/nicklockwood/StandardPaths

関連する問題