sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

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処理のついでに保存)