Iphone 如何使用用户默认值保存交换机状态?
是否有使用NSUserDefaults存储UISwitch状态的方法?Iphone 如何使用用户默认值保存交换机状态?,iphone,save,state,nsuserdefaults,uiswitch,Iphone,Save,State,Nsuserdefaults,Uiswitch,是否有使用NSUserDefaults存储UISwitch状态的方法? 如果状态是开着的,我想采取一些行动 我可以这样做吗? 谢谢 要保存: - (void)mySwitchAction:(id)sender { if (sender == mySwitch) { BOOL mySwitchValue = [ sender isOn ]; NSString *tmpString = mySwitchValue ? @"1" : @"-1" ; NSUserDefaul
如果状态是开着的,我想采取一些行动 我可以这样做吗?
谢谢 要保存:
- (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];
要保存:
- (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];
hotpaw2的答案很好,并且也可以很好地用于大分段控制(超过2个状态)。但是,如果您只想存储2个状态,为什么不像这样使用
[setBool:forKey:][/code>
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:switchState forKey:@"mySwitchValueKey"];
把它拿出来:
BOOL swichState = [userDefaults boolForKey:@"mySwitchValueKey"];
哪个imo更简单,根本没有if-else代码,没有字符串转换,对于来说,hotpaw2的答案很好,也可以很好地用于大分段控制(超过2个状态)。但是,如果您只想存储2个状态,为什么不像这样使用[setBool:forKey:][/code>
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:switchState forKey:@"mySwitchValueKey"];
把它拿出来:
BOOL swichState = [userDefaults boolForKey:@"mySwitchValueKey"];
哪个imo更简单,根本没有if-else代码,没有字符串转换回for,我可以使用一个没有声明的方法吗?我必须将状态保存在一个控制器中,然后验证状态并在另一个控制器中执行某些操作。。。我该怎么做?这听起来像是一个新的、不同的问题。@Matthew:我认为这很简单,你可以在另一个视图控制器中从userDefaults中获取状态。看看我的答案,一个更简单的答案,没有方法声明:)我可以使用一个没有声明的方法吗?我必须将状态保存在一个控制器中,然后验证状态并在另一个控制器中执行某些操作。。。我该怎么做?这听起来像是一个新的、不同的问题。@Matthew:我认为这很简单,你可以在另一个视图控制器中从userDefaults中获取状态。看看我的答案,一个更简单的答案,没有方法声明:)我相信这就是我要找的。。。我试试。。。谢谢我相信这就是我要找的。。。我试试。。。谢谢