在使用Swift编程时,如何设置NSUserDefaults的默认值?

3
如何将切换开关设置为“打开”?
另外,我读到如果用户第一次运行应用程序,则不会使用默认值。如何检查这一点?
在设置束中
在设置应用中
在AppDelegate中
let defaults:NSUserDefaults = NSUserDefaults.standardUserDefaults();
let showEnabledString:Bool = defaults.boolForKey("enabled_string");
println(showEnabledString); // true

 let appDefaults: NSDictionary = NSDictionary(object: "YES", forKey: "enabled_string");

// 这段代码不会改变“设置”应用程序中的外观

NSUserDefaults.standardUserDefaults().registerDefaults(appDefaults as [NSObject : AnyObject]);
           NSUserDefaults.standardUserDefaults().synchronize();

1
你为什么不使用 registerDefaults: ? https://developer.apple.com/library/prerelease/ios//documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html#//apple_ref/occ/instm/NSUserDefaults/registerDefaults: - Brad Brighton
Enabled开关仍然关闭,我知道如果获取值将会是false或nil,但默认情况下外观应该是打开的。 - grape1
你是如何在获取布尔值后设置开关状态的?或者这是你真正想问的问题吗?setOn(_:animated:) https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UISwitch_Class/index.html#//apple_ref/occ/instm/UISwitch/setOn:animated: - Brad Brighton
虽然苹果文档中可能存在错误,但更合理的建议是其他某个部分没有正确配置。这就是为什么我建议您逐步仔细地完成教程,以查看您所做的是否有任何不同之处。 - Brad Brighton
1
熵得分加一。至少现在它正常工作了。 - Brad Brighton
显示剩余6条评论
1个回答

0
if NSUserDefaults.standardUserDefaults().valueForKey("enabled_string") as? Bool != true {
   yourSwitchName.setOn(false, animated: false)
}else{
   yourSwitchName.setOn(true, animated: false)
}

将上述代码放在你的viewDidLoadviewDidAppear方法中。这是我设置开关的方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接