Help us understand the problem. What is going on with this article?

iOS /tmpと/Cachesディレクトリの違いと運用方法

More than 5 years have passed since last update.

/tmp/Cachesディレクトリ内のファイルは、iTunesのバックアップ対象外でシステムにより自動で削除されます。
何となく使っていたら容量不足でアプリがクラッシュしてしまったので、2つの違いと運用方法について調べてみました。

パスの取得

Application_Home/tmp/
NSString *path = NSTemporaryDirectory();
Application_Home/Library/Caches/
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];

違い

ディレクトリ ドキュメント記載の使用例 アクティブ中のシステムによる削除 非アクティブ中のシステムによる削除
/tmp 次のアプリの起動で保持する必要のないファイル ×
/Caches ダウンロードコンテンツ等

運用方法と注意

/tmp

  • アクティブ中にシステムによる削除を受けたくない一時ファイルに使用する。
  • アクティブ中はシステムに削除されないため、ファイル容量に注意して管理しなければならない。

/Caches

  • アクティブ中にシステムが削除してもよい一時ファイルに使用する。
  • アクティブ中にシステムによって削除された場合でも不具合が発生しない作りにしなければならない。

まとめ

今回調べるきっかけになった問題は、画像の一時的な保存に/tmpを利用していて、システムによる削除が入るから大丈夫かなーって思って何も考えずにどんどん保存してたら10時間くらい後にアプリ容量が10GBくらいになり(iPhoneの空き容量が0GB)クラッシュしました。(適切な処理をしていればクラッシュしないかもしれません)
あとドキュメントはちゃんと読みましょうということでした。

ドキュメント

File System Programming Guide - About the iOS File System

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした