1

NSUserDefaults で UISwitch の状態を保存する方法はありますか?
状態が ON の場合、何らかのアクションを設定したいのですが...

これはできますか?
ありがとう!

4

2 に答える 2

3

hotpaw2の答えは適切であり、大きなセグメント化された制御(2つ以上の状態)でもうまく機能します。しかし、2つの状態だけを保存したい場合は、[setBool:forKey:]このように使用してみませんか

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
   [userDefaults setBool:switchState forKey:@"mySwitchValueKey"];

そしてそれを取り出します:

   BOOL swichState = [userDefaults boolForKey:@"mySwitchValueKey"];

どのimoは、はるかに単純であり、他のコードがまったくない場合、文字列が逆変換されることはありません。

于 2010-08-30T09:02:32.137 に答える
1

保存する:

- (void)mySwitchAction:(id)sender
{
  if (sender == mySwitch) {
    BOOL mySwitchValue = [ sender isOn ];
    NSString *tmpString = mySwitchValue ? @"1" : @"-1" ;
    NSUserDefaults  *myNSUD = [NSUserDefaults standardUserDefaults];
    [ myNSUD setObject:tmpString forKey: @"mySwitchValueKey" ];
    [ myNSUD synchronize ];
    // do other stuff/actions
  }
}

保存された状態から初期化するには:

NSUserDefaults  *myNSUD = [NSUserDefaults standardUserDefaults];
NSString *tmpString =  [ myNSUD stringForKey: @"mySwitchValueKey"];
BOOL mySwitchValue = NO;  // or DEFAULT_VALUE
if (tmpString != nil) { 
  mySwitchValue = ( [ tmpString intValue ] == 1 ); 
}
[mySwitch setOn: mySwitchValue];
于 2010-08-27T17:49:11.367 に答える