NSUserDefaultsを使ってデータを保存

アプリ内でデータを保存する場合にCoreDataを使うという手もありますが、
テーブル定義が〜とか定義を変更した時にマイグレーション処理が〜など色々とめんどいので、
代わりにNSUserDefaultsを使って比較的楽に保存する方法があります。


NSUserDefaultsは、iPhoneiPadのアプリの設定画面の情報を
取得したり設定できるクラスです。


二郎系アプリでは設定画面は用意していませんが、
NSUserDefaultsを使ってお気に入り機能を実装しました。
お気に入り登録したお店情報リスト(NSData)をまるっと保存しています。


・保存時

//お店情報リスト
NSArray *shopList = [NSArray arrayWithObjects:@"お店1", @"お店2", @"お店3", nil];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//お店情報リスト(NSArray)をデータ化(NSData)
NSData *shopData = [NSKeyedArchiver archivedDataWithRootObject:shopList];
//shopListキーを指定してデータを保存
[defaults setObject:shopData forKey:@"shopList"];
if (![defaults synchronize]) {
	NSLog(@"defaults setObject error");
	return;
}


・取得時

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//shopキーのデータを取得
NSData *shopData = [defaults dataForKey:@"shopList"];
//データをリスト化
NSArray *shopList = [NSKeyedUnarchiver unarchiveObjectWithData:shopData];