Swift: 为什么它更新的高分不正确?

Swift: why is it updating the highscore incorrectly?

我真的被困住了...感谢任何帮助!!

出于某种原因,高分在不应该更新的时候更新。例如,高分将是 9,然后在完成后,分数和高中将是,例如,5,而高分应该是 9。我认为这是因为当前分数没有与保存的高分进行比较,而是而不是将它与 var highscore = 0 中的值 0 进行比较。我知道正在保存高分,因为即使在应用程序关闭后它也会显示,所以我不明白为什么它不将保存的值与当前分数进行比较。

这是我的代码:

var toSend = Int()
var highScore = 0

override func viewDidLoad() {
    super.viewDidLoad()
    let highScoreDefault = NSUserDefaults.standardUserDefaults()


    if toSend > highScore
    {
        highScore = toSend
        highScoreDefault.setValue(highScore, forKey: "Highscore")
        highScoreDefault.synchronize()
    }

    if highScoreDefault.valueForKey("Highscore") != nil {
        highScore = highScoreDefault.valueForKey("Highscore") as! NSInteger!
    }


    score.text = "Your Score: \(toSend)"
    highScorer.text = "Your High Score: \(highScore)"
    // Do any additional setup after loading the view.
}

只需交换 "if" 语句并检查:

if highScoreDefault.valueForKey("Highscore") != nil {
        highScore = highScoreDefault.valueForKey("Highscore") as! NSInteger!
    }

if toSend > highScore
    {
        highScore = toSend
        highScoreDefault.setValue(highScore, forKey: "Highscore")
        highScoreDefault.synchronize()
    }