【NSUserDefaults】とmutable

以前データ保存にNSUserDefaultsを使うと書いた。
データの保存にはNSUserDefaults

前回はただの数値の保存だったが今回は配列、それもmutableな配列で入れ子構造の物を保存した。

参考サイト。
Objective-C – NSUserdefaultsにNSMutablearrayを格納する/読み出す – Qiita
NSMutableArrayをユーザーデフォルトに保存する方法 – Dolice Lab
NSUserDefaultsはどこまで保存できるかチェック(2) – iPhoneアプリ開発まっしぐら★ – iPhoneアプリ開発グループ

今回はNSMutableArrayの中にNSDictionary形式のものが入っている。

結果的にuserDefaultsに入れたものはmutableでなくなるらしい。
で、取り出したものを[[defaults arrayForKey:key] mutableCopy] とすれば NSMutableArray に変換出来るらしい。

以下、今回使ったコードの一部

#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

自分用の備忘録なので間違ってたらゴメンね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です