保存場所

  • メモリ
    • NSCache:メモリが足りなくなれば自動的にアイテムが消される
    • Dictionary や Array
  • ファイルシステム
    • ディレクトリ:基本的に iCloud へバックアップされる
    • UserDefaults:プリミティブ型のユーザ設定を保存する、起動時にメモリに展開される、iCloud へバックアップされる
    • データベース:Core Data、Realm、SQLite など
    • KeyChain

ファイルシステムの構造

/
    Applications/ (大事)
    Developer/
    Library/
    System/
    User/
    bin/
    dev/
    etc/
    lib/
    mnt/
    private/
    sbin/
    tmp/
    usr/
    var/ (大事)

/Applications

/
    Applications/
        {$appname}.app/: pre-installed apps

/var

var/
    containers/
        Bundle/
            Application/
                {$uuid}/: App Store app/
                    BundleMetadata.plist
                    {$appname}.app/
    mobile/
        Containers/
            Data/
                Application/
                    {$uuid}/: App Store app's data、アプリが削除されると消える
                        Documents/ - ユーザデータ、ユーザに見せてもいいファイル
                        Library/ - ユーザへ見せないファイル
                            Caches/ - iCloudへバックアップされない
                            Preferences/
                                {$bundle ID}.plist - UserDefaults、セキュアではない
                            xxx/
                        SystemData/
                        tmp/

Keychain

アプリが削除されても消えない

/
    var/
        Keychains/
            keychain-2.db: iOS Keychain (SQLite DB file)