guardar y cargar puntuación más alta

Intenté usar NSUserDefults para guardar y cargar una puntuación más alta (nsinteger) para mi juego. He creado una función de anulación que comprueba si el puntaje de juego es más grande que mi puntuación más alta y si lo hace para cambiar entre ellos. Quiero que cada vez que finalice el juego haya una etiqueta que muestre mi puntuación más alta. para hacer esto, creo una propiedad para mis NSUsweDefults, en mi viewdidload intenté cargar el puntaje más alto de currect, y otra función (checkIfHighscore). Aquí está mi propiedad NSUserDefults:

@property(readwrite) NSUserDefaults *prefs;

Aquí está mi código de viewdidload:

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

aquí está mi checkIfHighscore:

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

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

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

cuando entro a este viewcontroller mi highscorelabel muestra 0, como si no guardara mi highscore.

¿Qué hago mal? ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta