NSUserDefaults - 設定を保存する
androidでいうところの、android.content.SharedPreferences。
それも、PreferenceManager.getDefaultSharedPreferences(Context context) で取得できるやつ。 Standard(Default)なやつや、適当に名前をつけたものが使える。
plist(xml)形式で、以下の型のデータの読み書きが可能。 ちょっとしたアプリの設定や、プログラム内のステータス等の永続化したいデータを記録するのにうってつけ。
扱えるデータの型は以下。
- NSData / NSMutableData
- NSString / NSMutableString
- NSNumber
- NSDate
- NSURL
- NSArray / NSMutableArray (要素はここに列挙されている型のみ)
- NSDictionary / NSMutableDictionary (要素はここに列挙されている型のみ)
保存していないKeyで値を読み出した時に、型によって戻るデフォルト値が異なる。
ファイルは、~/Library/Preferences/ 以下に保存されるらしい。
ストレージへの保存
UserDefaultsへ値を登録すると、適当なタイミングで端末内のストレージに保存してくれるが、アプリの終了処理などで直ちに保存しなければならない時は、 synchronizeを呼ぶと良い。
アプリの終了処理時がいつなのかを考えるのも面倒なので、UIApplicationDelegateの applicationDidEnterBackgroundの処理の時に、必ずsynchronizeを行うとよさそう。 (TaskCompletion処理のついでに保存)