需要帮助找出 iOS 8 bug/glitch

Need help figuring out iOS 8 bug/glitch

我在游戏应用程序中有 2 个视图控制器。 1st VC 没有游戏玩法,只有介绍。第二 VC 是游戏玩法和 GameOver 屏幕。在 GameOver 屏幕上有一个 BACK 按钮,可以让你回到第一个 VC。在 GameOver 上还有最终得分和高分。例如,当前最终得分 = 3,而上一场比赛的最终得分为 2。出于某种原因,在从 VC2 到 VC1 的瞬间过渡期间,当我单击 BACK 转到第一个 VC 时,最终得分将显示 2 而不是 3。这不应该发生。但是,这对游戏玩法没有影响。但是还是很烦人bug/glitch.

finalscore = UILabel

高分=UILAbel

int scoreNumber;

NSInteger HighScoreNumber;

 -(void)GameOver{

 if (scoreNumber <0) {
    scoreNumber=0;
}

     finalscore.text=[NSString stringWithFormat:@"Final Score:   %i", scoreNumber];

    if (scoreNumber >HighScoreNumber) {

    [[NSUserDefaults standardUserDefaults]setInteger:scoreNumber forKey:@"HighScoreSave"];

    Highscore.text=[NSString stringWithFormat:@"High Score:   %i", scoreNumber];
}

    HighScoreNumber=[[NSUserDefaults standardUserDefaults]integerForKey:@"HighScoreSave"];

    Highscore.text=[NSString stringWithFormat:@"High Score:   %li", (long) HighScoreNumber];

   }

当我达到新的高分时,同样的事情发生在 VC2 到 VC1 的瞬间转换中,它显示以前的高分而不是当前的高分。此故障或错误仅发生在 iOS 8 中,绝不会发生在 iOS 7 中。

我不知道如何解决这个问题。可能是什么问题?

我使用 MODAL unwind segue 从 VC1 到 VC2 再返回。

我不知道这是否是问题所在,但我注意到您没有同步 NSUserDefault

尝试添加它:

[[NSUserDefaults standardUserDefaults]setInteger:scoreNumber forKey:@"HighScoreSave"];
[[NSUserDefaults standardUserDefaults] synchronize]