【发布时间】:2011-12-25 14:03:56
【问题描述】:
我正在尝试设置一个默认关闭的 UISwitch,直到用户打开它。但是它现在默认显示为 ON。
AppDelegate 的 didFinishLaunching:
NSString *testValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"pinCodeSwitch"];
if (!testValue) {
// since no default values have been set, create them here
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"pinCodeSwitch"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
VC 的 viewDidAppear:
UISwitch* testSwitch = [[[UISwitch alloc] init] autorelease];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"pinCodeSwitch"]) {
[testSwitch setOn:NO animated:NO];
}
self.pinCodeSwitch = testSwitch;
UISwitch 值改变时保存 BOOL 的方法:
- (IBAction)pinCodeSwitchChanged:(id)sender
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"pinCodeSwitch"];
BOOL test = [[NSUserDefaults standardUserDefaults] boolForKey:@"pinCodeSwitch"];
}
【问题讨论】:
标签: iphone objective-c cocoa-touch nsuserdefaults uiswitch