以前データ保存にNSUserDefaultsを使うと書いた。
データの保存にはNSUserDefaults
前回はただの数値の保存だったが今回は配列、それもmutableな配列で入れ子構造の物を保存した。
参考サイト。
Objective-C – NSUserdefaultsにNSMutablearrayを格納する/読み出す – Qiita
NSMutableArrayをユーザーデフォルトに保存する方法 – Dolice Lab
NSUserDefaultsはどこまで保存できるかチェック(2) – iPhoneアプリ開発まっしぐら★ – iPhoneアプリ開発グループ
今回はNSMutableArrayの中にNSDictionary形式のものが入っている。
結果的にuserDefaultsに入れたものはmutableでなくなるらしい。
で、取り出したものを[[defaults arrayForKey:key] mutableCopy] とすれば NSMutableArray に変換出来るらしい。
以下、今回使ったコードの一部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#import "MasterViewController.h" #import "DetailViewController.h" NSMutableArray *objects; @interface MasterViewController () #pragma mark - データの保存 - (void)load { // NSUserDefaultsの取得 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; objects = [[defaults arrayForKey:@"dream"]mutableCopy];//データを取り出す NSLog(@"load"); } - (void)save { // NSUserDefaultsの取得 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:objects forKey:@"dream"];//データの保存 [defaults synchronize]; NSLog(@"save"); } @end |
自分用の備忘録なので間違ってたらゴメンね。