我有一个 UserDefault
Bool
用于音乐播放。
第一次启动时,我尝试将 bool 设置为 true,就像这样...
if launchedBefore {
// Do nothing.
} else {
UserDefaults.standard.set(true, forKey: "musicOn")
print("music is \(musicOn)")
UserDefaults.standard.set(true, forKey: "alreadylaunched")
}
这是在 viewDidAppear()
中。
问题是它在第一次启动时没有设置为真,不管我在哪里设置 bool,它可能没有 launchedBefore
检查,它仍然没有在第一次设置.
我不明白为什么这行不通? musicOn 在第一次启动时总是等于 false,然后在第二次启动时,它是真的吗?
如有任何见解,我们将不胜感激。谢谢!
最佳答案
对我有用的是让 var musicOn 再次等于用户默认的 bool。
if launchedBefore {
// Do nothing.
} else {
UserDefaults.standard.set(true, forKey: "musicon")
print("music is \(UserDefaults.standard.bool(forKey: "musicon"))")
musicOn = UserDefaults.standard.bool(forKey: "musicon") // Stating it again works to update the bool.
UserDefaults.standard.set(true, forKey: "alreadylaunched")
}
var musicOn 已经在任何函数之外实例化了,看来只需要重新设置一下。
感谢您的评论!
关于ios - 为什么我的 User Defaults bool 没有在第一次启动应用程序时设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44233411/