NSUserDefaults で簡単な永続化データをつくる

アプリの設定とか, ちょっとしたデータをアプリケーションに保存しておきたい場合, CoreDataなどのデータベースを扱うのはちょっとオーバースペックだなと感じるときは, NSUserDefault  でデータを永続化しておくことができます。

扱う方法はきわめて簡単, key-value で楽々保存, 取り出しができます。

書き込み

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"check"];
[defaults setObject:@"text" forKey:@"string"];

checkというキーで, YESを書き込み, stringというキーで, 文字列 “text”を書き込みました。

読み込み

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
BOOL check = [defaults boolForKey:@"check"];
NSString *string = [defaults stringForKey:@"string"];

* BOOL でキーが存在しない場合は, NOを返します。
* integerValueの場合 NSIntegerが返りkeyがない場合は0になります。
*個人的にはソフトウェアのバージョンなんかを管理するために使ったりなんかしてます。

書き込み後, 強制的にすぐに反映させる

前は, すぐに反映されていた気がしますが, 書き込んだだけでは, すぐに反映されません。
それをコードを挟むことですぐに
データベースのcommitみたいですね。

[[NSUserDefaults standardUserDefaults] synchronize];