私のゲームでは、ユーザーのハイスコアを保存するために 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];
}
何が問題ですか?