Xcode 如何在Swift Spritekit中立即显示我的高分?

Xcode 如何在Swift Spritekit中立即显示我的高分?,xcode,swift,Xcode,Swift,我知道如何保存我的高分,但我有一个问题。高分保存,但在我击败分数后不会更新高分。我必须再次比赛并输球,然后它会更新游戏菜单中的最高分。我该如何解决这个问题?这是代码 func didBeginContact(contact:SKPhysicsContact){ var defaults=NSUserDefaults() var highscore=defaults.integerForKey("highscore") if(score>highscore)

我知道如何保存我的高分,但我有一个问题。高分保存,但在我击败分数后不会更新高分。我必须再次比赛并输球,然后它会更新游戏菜单中的最高分。我该如何解决这个问题?这是代码

  func didBeginContact(contact:SKPhysicsContact){

    var defaults=NSUserDefaults()
    var highscore=defaults.integerForKey("highscore")

    if(score>highscore)
    {
        defaults.setInteger(score, forKey: "highscore")
    }
    var highscoreshow = defaults.integerForKey("highscore")

    endOfGameHighScoreLabel.text = String(highscore)


    }
}

您需要使用您声明的
highscoreshow
变量,而不是使用
highscore
变量。因为在您的
highscore
变量中,仍然存在前一轮的高分。正如您已经做的,您需要获得保存在
NSUserDefaults
中的新高分。所以你需要改变这一点:

endOfGameHighScoreLabel.text = String(highscore)
为此:

endOfGameHighScoreLabel.text = String(highscoreshow)