我有两个视图控制器在游戏应用程序。第一VC不仅仅是游戏介绍。第二个VC是游戏和GameOver屏幕。在GameOver屏幕上有一个后退按钮,它把你带回到第一个VC。在GameOver上也是最终得分和高分。例如,当前的最终得分=3分,而上一场比赛的最终得分是2分。由于某种原因,在从VC2到VC1的一秒过渡期间,我单击上一次转到第一次VC时,最终得分将显示为2而不是3。这是不应该发生的。然而,这对游戏没有影响。但这仍然是一个恼人的错误/小故障。
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中。
我不知道怎么解决这个问题。有什么问题吗?
我使用模态展开segue从VC1到VC2并返回。
发布于 2015-05-22 21:26:57
我不知道这是否是问题所在,但我注意到您没有同步NSUserDefault。
尝试添加它:
[[NSUserDefaults standardUserDefaults]setInteger:scoreNumber forKey:@"HighScoreSave"];
[[NSUserDefaults standardUserDefaults] synchronize]https://stackoverflow.com/questions/30404257
复制相似问题