在我的游戏中,我使用 NSUserDefults 来保存用户高分。在我第一次完成游戏时,我的高分被设置为游戏分数,但每次之后游戏中的分数都会自动设置为高分。这里的奇怪之处在于,如果我的游戏得分为 0,那么我的高分将保持为最高分,但如果在某场比赛结束时,我的得分为 100 被设置为高分,但之后的比赛如果我的得分为 50,我的高分是设置为 50(虽然分数低于我的高分)。这是我的 viewdidload 代码:
highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScore"] intValue ];
highScoreLabel.text = [NSString stringWithFormat:@"%d",highScore];
这是我的 checkIfHighscore 代码:
-(void)checkIfHighScore
{
if(gameOverScore > highScore)
{
highScore = gameOverScore;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"HighScore"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
highScoreLabel.text = [NSString stringWithFormat:@"%d", highScore];
}
问题是什么?