我尝试使用 NSUserDefults 为我的游戏保存和加载高分(nsinteger)。我创建了一个 void 函数来检查 gameoverscore 是否大于我的 highscore 以及是否可以在它们之间切换。我希望每次比赛结束时都会有一个标签显示我的当前高分。为此,我为我的 NSUsweDefults 创建了一个属性,在我的 viewdidload 中我尝试加载当前的高分和另一个函数(checkIfHighscore)。这是我的 NSUserDefults 属性:
@property(readwrite) NSUserDefaults *prefs;
这是我的 viewdidload 代码:
NSInteger currectHighscore = [prefs integerForKey:@"highscore"];
highScoreLabel.text = [NSString stringWithFormat:@"%d",currectHighscore];
这是我的 checkIfHighscore:
-(void)checkIfHighScore
{
if(gameOverScore > highScore)
{
highScore = gameOverScore;
[self newHighscoreAnimation];
[prefs setInteger:highScore forKey:@"highscore"];
[prefs synchronize];
}
highScoreLabel.text = [NSString stringWithFormat:@"Highscore: %d", highScore];
}
当我进入这个视图控制器时,我的高分标签显示为 0,就像它没有保存我的高分一样。
我做错了什么?谢谢!