最佳答案
您的代码中似乎有几个错误,最值得注意的是您似乎每次都将保存的高分重置为零。尝试这样的事情:
if defaults.objectForKey("highScore") == nil {
defaults.setInteger(score, forKey: "highScore")
} else {
if score > defaults.integerForKey("highScore") {
defaults.setInteger(score, forKey: "highScore")
}
}
您必须调整上面的代码以适合您的特定目的,并确保所有变量都得到适当的定义和设置,但这是我检查和设置 NSUserDefaults 高分的标准方法,它对我有用。
实际上,我只是想到了一个更短的语法:
if defaults.objectForKey("highScore") == nil || score > defaults.integerForKey("highScore") {
defaults.setInteger(score, forKey: "highScore")
}
关于swift - 使用 Sprite Kit swift 保存和更新高分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37405017/