线程1:使用NSUserDefaults的EXC_BAD指令

时间:2015-11-09 22:04:28

标签: swift sprite-kit 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()
}

什么可以是零?我对这个函数中的所有内容都有价值。如有必要,将发布更多代码。

1 个答案:

答案 0 :(得分:1)

这意味着开始时可能存在错误。我建议使用常量来访问用户默认值,以便不会发生这种类型的事情。

编辑:

我通常做的是创建一个单独的文件,它是一个全局常量文件,作为结构的一部分 在此文件中,您可以像这样定义常量:

struct GlobalConstants {
    static let defaultsHighScore = "labelScore"
}

然后,当我尝试从默认值中读取时,不是每次都输入所有内容,我可以像这样使用常量:defaults.setInteger(highScore, forKey: GlobalConstants.defaultsHighScore)