Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2009年10月25日

NSUserDefaultsとUISwitchの設定内容のやりとり



UISwitchで設定したスイッチのON/OFFの状態を、NSUserDefaultsに設定/保存したり、UIswitchに回復する方法。

1. UISwichを生成する
UISwitch *switchObj = [[UISwitch alloc] initWithFrame:CGRectMake(1.0, 1.0, 20.0, 20.0)];
switchObj.on = [defaults integerForKey:@"hoge"];
[switchObj addTarget:self
action:@selector(hogeSwitch:)
forControlEvents:UIControlEventValueChanged];
cell.accessoryView = switchObj;
[switchObj release];


2. UISwitchの内容をNSUserDefaultsに保存する
- (IBAction)hogeSwitch:(id)sender
{
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];

if ([sender isOn] == YES) {
[defaults setInteger:1 forKey:@"hoge"];
} else {
[defaults setInteger:0 forKey:@"hoge"];
}
}


UISwitchのON/OFFの項目は、BOOL値(YES/NO)。
YESは0以外,NOは0なので、NSUserDefaultsに設定するときは setIntegerで、NSUserDefaultsからUISwitchに設定するときは integerForKeyを使う。

初回実行時のときなど、NSUserDefaultsがiPhoneまたはiPhone Simulator上に設定されていないときは、次のようなコードにする。
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
if (![defaults stringForKey:@"hoge"]) { // NSUserDefaults未設定

UISwitch *switchObj = [[UISwitch alloc] initWithFrame:CGRectMake(1.0, 1.0, 20.0, 20.0)];
switchObj.on = NO;
[switchObj addTarget:self
action:@selector(hogeSwitch:)
forControlEvents:UIControlEventValueChanged];
cell.accessoryView = switchObj;
[switchObj release];

} else { // NSUserDefaultsから設定
UISwitch *switchObj = [[UISwitch alloc] initWithFrame:CGRectMake(1.0, 1.0, 20.0, 20.0)];
switchObj.on = [defaults integerForKey:@"hoge"];
[switchObj addTarget:self
action:@selector(hogeSwitch:)
forControlEvents:UIControlEventValueChanged];
cell.accessoryView = switchObj;
[switchObj release];

}

 
 
タグ:iPhone
【NSUserDefaultsの最新記事】
posted by mobileDeveloper at 15:06 | Comment(0) | TrackBack(0) | NSUserDefaults はてなブックマーク - NSUserDefaultsとUISwitchの設定内容のやりとり | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。