2011年12月3日土曜日

設定値の保存/読み出し方

設定値の保存にはNSUserDefaultsを使う。

設定値は辞書形式で記録されるので、その名称となるキー値を決めておく必要がある。
NSString *文字列である。
これらは通常.hに書いておく。

#define keyCameraDevice     @"cameraDevice"
#define keyFalarmRetrigger  @"falarmRetrigger"
#define keyExitDelay        @"ExitDelay"
#define keyLatestDate       @"LatestDate"

書き出し側
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; // これは定型書式

    // 記録するオブジェクトの型によってメッセージが変わる
    [defaults setInteger:cameraDevice       forKey:keyCameraDevice ];
    [defaults setBool:falarmRetrigger       forKey:keyFalarmRetrigger];
    [defaults setFloat:tmExitDelay          forKey:keyExitDelay];
    [defaults setObject:latestDate          forKey:keyLatestDate];

    // 書き込み終わったら同期をかける。iOS4以降では必須
    [defaults synchronize];
読み出し側
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
    // インストール直後かどうかを判定
    if ([defaults boolForKey:keyInitialSetup]==NO) {
        [self initSetup];
    } else {
        cameraDevice        =[defaults integerForKey:keyCameraDevice];
        falarmRetrigger     =[defaults boolForKey:keyFalarmRetrigger];
        tmExitDelay         =[defaults floatForKey:keyExitDelay];
        latestDate          =[defaults objectForKey:keyLatestDate];
    }

一番最初の初期化
-(id)initSetup
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
    [defaults setBool:YES forKey:keyInitialSetup];  // 初期設定をした印
    // 以下初期値で書き出す処理を書く

というような感じ。







0 件のコメント:

コメントを投稿