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];