线程 1:EXC_BAD NSUserDefaults 指令
Thread 1: EXC_BAD INSTRUCTION with NSUserDefaults
我有它,所以当我的游戏结束时,它会切换到一个单独的 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()
}
什么可以是零?我对这个函数中的所有东西都有价值。如有必要,将 post 更多代码。
这意味着它可能一开始就保存错误。我建议对诸如访问用户默认值之类的事情使用常量,这样这类事情就不会发生。
编辑:
我通常做的是创建一个单独的文件,它是一个全局常量文件,作为结构的一部分
在此文件中,您可以像这样定义常量:
struct GlobalConstants {
static let defaultsHighScore = "labelScore"
}
然后,当我尝试从默认值读取时,而不是每次都输入所有内容,我可以像这样使用常量:defaults.setInteger(highScore, forKey: GlobalConstants.defaultsHighScore)
我有它,所以当我的游戏结束时,它会切换到一个单独的 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()
}
什么可以是零?我对这个函数中的所有东西都有价值。如有必要,将 post 更多代码。
这意味着它可能一开始就保存错误。我建议对诸如访问用户默认值之类的事情使用常量,这样这类事情就不会发生。
编辑:
我通常做的是创建一个单独的文件,它是一个全局常量文件,作为结构的一部分 在此文件中,您可以像这样定义常量:
struct GlobalConstants {
static let defaultsHighScore = "labelScore"
}
然后,当我尝试从默认值读取时,而不是每次都输入所有内容,我可以像这样使用常量:defaults.setInteger(highScore, forKey: GlobalConstants.defaultsHighScore)