Highscore speichern und laden

Ich habe versucht, mit NSUserDefults einen Highscore (nsinteger) für mein Spiel zu speichern und zu laden. Ich habe eine Void-Funktion erstellt, die prüft, ob der Gameoverscore größer ist als mein Highscore und ob dies der Fall ist, um zwischen diesen zu wechseln. Ich möchte, dass jedes Mal, wenn das Spiel vorbei ist, ein Label erscheint, das meinen aktuellen Highscore anzeigt. Dazu erstelle ich eine Eigenschaft für meine NSUsweDefults, in meinem Viewdidload habe ich versucht, den aktuellen Highscore und eine andere Funktion (checkIfHighscore) zu laden. Hier ist meine NSUserDefults-Eigenschaft:

@property(readwrite) NSUserDefaults *prefs;

hier ist mein viewdidload code:

    NSInteger currectHighscore =  [prefs integerForKey:@"highscore"];
    highScoreLabel.text = [NSString stringWithFormat:@"%d",currectHighscore];

Hier ist mein checkIfHighscore:

-(void)checkIfHighScore
{
    if(gameOverScore > highScore)
    {
        highScore = gameOverScore;
        [self newHighscoreAnimation];

        [prefs setInteger:highScore forKey:@"highscore"];
        [prefs synchronize];

    }
    highScoreLabel.text = [NSString stringWithFormat:@"Highscore:  %d", highScore];
}

wenn ich in diesen viewcontroller gehe, zeigt mein highscorelabel 0 an, als würde es meinen highscore nicht speichern.

was mache ich falsch Vielen Dank!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage