答案 0 :(得分:0)
您的代码中似乎存在多个错误,最明显的是您似乎每次都将您保存的高分重置为零。尝试这样的事情:
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")
}