gpt4 book ai didi

ios - 存储 UISwitch 状态的问题

转载 作者:行者123 更新时间:2023-11-28 05:33:12 27 4
gpt4 key购买 nike

我的应用程序中有一个设置,我在保留其状态时遇到了问题。基本上,默认情况下 UISwitch 是打开的,但是当我将应用程序更新到较新版本时,它似乎会关闭。我发现如果用户在 1.0 版本中打开了设置菜单,那么这不是问题,但是如果他们从未更改过设置,甚至从未打开过设置菜单,那么这就是问题了。因此,它一定是 viewWillAppear() 某处的问题,但我无法弄清楚它是什么。我用于存储开关状态的代码似乎过于复杂。

这是我在设置菜单中的代码:

@IBAction func dupOffOnSwitch(sender: AnyObject) {
if dupSwitch.on == true {
autoAdjust = true
println(autoAdjust)
} else {
autoAdjust = false
println(autoAdjust)
}

NSUserDefaults.standardUserDefaults().setBool(autoAdjust, forKey: "autoAdjustSettings")
}

override func viewWillAppear(animated: Bool) {

autoAdjust = NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings")

if autoAdjust == true {
dupSwitch.on = true
} else {
dupSwitch.on = false
}
}

if userReturnedAuto == false {
dupSwitch.on = true
themeSwitch.on = false
userReturnedAuto = true
NSUserDefaults.standardUserDefaults().setBool(userReturnedAuto, forKey: "userReturnedAuto")
NSUserDefaults.standardUserDefaults().setBool(userReturnedAuto, forKey: "autoAdjustSettings")
}

我在另一个 View Controller 中将 bool 'autoAdjust' 声明为全局变量。在 viewWillAppear() 中的同一个 View Controller 中,我有这段代码:

    autoAdjust = NSUserDefaults.standardUserDefaults().boolForKey("autoAdjustSettings")

谁能建议一种更好的方法来存储开关状态,同时在应用程序首次启动时默认打开它?或者修复我当前的解决方案。

最佳答案

NSUserDefaults.standardUserDefaults().boolForKey("key") 默认为 false。因此,就像您的情况一样,如果用户从不设置 key ,那么它将是 false 并且开关将默认为关闭。

相反,重命名 key 并将其用作否定。因此,改为将其称为 autoAdjustSettingsOff,这将默认为 false,开关将默认为打开。不要忘记在条件 block 中切换真/假设置。

关于ios - 存储 UISwitch 状态的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com