zapisz i załaduj najlepszy wynik
Próbowałem użyć NSUserDefults, aby zapisać i załadować wynik (nsinteger) dla mojej gry. Utworzyłem funkcję nieważności, która sprawdza, czy wynik gry jest większy niż mój najlepszy wynik i czy przełącza się między nimi. Chcę, aby za każdym razem, gdy gra się skończy, pojawiła się etykieta, która pokazuje mój dokładny wynik. aby to zrobić, tworzę właściwość dla moich NSUsweDefults, w moim viewdidload próbowałem załadować poprawny wynik i inną funkcję (checkIfHighscore). oto moja własność NSUserDefults:
@property(readwrite) NSUserDefaults *prefs;
oto mój kod podglądu:
NSInteger currectHighscore = [prefs integerForKey:@"highscore"];
highScoreLabel.text = [NSString stringWithFormat:@"%d",currectHighscore];
oto mój checkIfHighscore:
-(void)checkIfHighScore
{
if(gameOverScore > highScore)
{
highScore = gameOverScore;
[self newHighscoreAnimation];
[prefs setInteger:highScore forKey:@"highscore"];
[prefs synchronize];
}
highScoreLabel.text = [NSString stringWithFormat:@"Highscore: %d", highScore];
}
kiedy wchodzę do tego kontrolera, mój highborelabel pokazuje 0, tak jak nie zapisuje mojego wyniku.
co robię źle? dzięki!