我拥有它,以便当我的游戏结束时,它会切换到单独的SKScene,显示新的高分。这是我的代码:
func saveState() {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setInteger(highScore, forKey: "labelScore") //this line says "unexpectedly found nil while unwrapping an optional value
defaults.setInteger(stars, forKey: "SNOW")
NSUserDefaults.standardUserDefaults().synchronize()
}
什么可以是零?我对这个函数中的所有内容都有价值。如有必要,将发布更多代码。
答案 0 :(得分:1)
这意味着开始时可能存在错误。我建议使用常量来访问用户默认值,以便不会发生这种类型的事情。
编辑:
我通常做的是创建一个单独的文件,它是一个全局常量文件,作为结构的一部分 在此文件中,您可以像这样定义常量:
struct GlobalConstants {
static let defaultsHighScore = "labelScore"
}
然后,当我尝试从默认值中读取时,不是每次都输入所有内容,我可以像这样使用常量:defaults.setInteger(highScore, forKey: GlobalConstants.defaultsHighScore)