我有以下代码,我试图在我的游戏开始时只有一次播放教程,所以我有一个布尔变量设置为一旦教程完成后变为真但由于某种原因,值是保持虚假。我甚至打印了教程的值,即使前面的行是将值设置为true的行,它也会显示为false。为什么要这样做?
let tutorial = UserDefaults().bool(forKey: "tutorial")
if tutorial == false {
introSequence()
}
if rightIntroButton.contains(location) {
UserDefaults().set(true, forKey: "tutorial")
//tutorial = true
UserDefaults.standard.set(true, forKey: "tutorial")
print(tutorial)
}
答案 0 :(得分:1)
我有一个布尔变量设置为一旦教程有真实 已完成但由于某种原因,该值仍然是假的。
原因是:每次创建用于访问UserDefaults(UserDefaults()
)的新对象时,您应该使用standard Singleton 对象:
返回共享默认对象。
因此,请将UserDefaults()
替换为UserDefaults.standard
。