我正在使用 Bool
UserDefault,除非在应用程序的其他地方发生更改,否则我希望它最初返回为 true
。
不幸的是,除非另有说明,否则 UserDefault.bool(forKey:)
返回 false
。我会在 viewDidLoad()
中将它设置为等于 true
,但这会导致每次加载该屏幕时它都会被重置。
如何在 swift 中将初始默认返回值更改为 true
而不是 false
?
请尽可能使用swift。
最佳答案
你问的不是很清楚。您是在问如何做到这一点,以便在您的应用程序首次安装和运行时,您的 BOOL 值加载为真?
答案是使用 registerDefaults()
方法(正如 Martin R 在他的评论中提到的)。
您将一个 NSDictionary 传递给它,其中包含您要加载为“默认默认值”的键/值对。最好的地方是在应用委托(delegate)的初始化类方法中。这样一来,在您的任何应用程序运行其他代码之前,就会设置默认的默认键值对。
因此将此方法添加到您的应用委托(delegate)中:
class func initialize()
{
NSUserDefaults.standardUserDefaults().registerDefaults(
["myDefault": true,
"aStringDefault": "defaultStringValue"],
"arrayDefault": [1, 2, 3,])
//Do any other startup initialization that needs to happen
//before all your other app delegate code.
}
(未测试。可能需要稍作改动才能工作...)
编辑:
你可以注册任意多的默认值,也可以在默认值中写入更复杂的结构。我更新了示例代码以显示更复杂的示例)
关于ios - 如何在每次运行应用程序时更改 NSUserDefault 的默认返回值而不保存它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33190648/