salvar e carregar o recorde

Eu tentei usar NSUserDefults para salvar e carregar um recorde (nsinteger) para o meu jogo. Eu criei uma função void que verifica se o gameoverscore é maior que meu highscore e se ele faz para alternar entre eles. Eu quero que toda vez que o jogo acabar, haverá um rótulo que mostre o meu highscore currect. Para fazer isso, eu crio uma propriedade para meu NSUsweDefults, no meu viewdidload eu tentei carregar o highscore de currect, e outra função (checkIfHighscore). aqui está minha propriedade NSUserDefults:

@property(readwrite) NSUserDefaults *prefs;

aqui está o meu código de viewdidload:

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

aqui está o meu checkIfHighscore:

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

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

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

Quando eu entro para este viewcontroller meu highscorelabel mostra 0, como ele não salva meu highscore.

o que eu faço de errado? obrigado!

questionAnswers(1)

yourAnswerToTheQuestion