需要帮助搞清楚iOS 8 bug / glitch

时间:2015-05-22 19:12:21

标签: debugging ios7 uiviewcontroller ios8

我在游戏App中有2个视图控制器。第一个VC不仅仅是介绍游戏。第二个VC是游戏玩法和GameOver屏幕。在GameOver屏幕上是一个BACK按钮,可以将您带回到第一个VC。在GameOver上也是最终得分和高分。例如,当前最终得分= 3,之前游戏的最终得分为2.出于某种原因,当我在从VC2到VC1的第二次转换期间单击BACK转到第一个VC时,最终得分将显示为2而不是3那不应该发生。但是,这对游戏玩法没有任何影响。但它仍然是一个烦人的错误/故障。

finalscore = UILabel

Highscore = 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并返回。

1 个答案:

答案 0 :(得分:0)

我不知道这是不是问题,但我注意到你没有同步NSUserDefault

尝试添加它:

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