我真的无法弄清楚为什么我的高分不会保存。作为序言,这是我要完成的一般任务。
以下是相关代码。
在实施中:
int highScore;
NSUserDefaults * defaults;
初始化:
defaults = [NSUserDefaults standardUserDefaults];
代码主体:
scoreLabelNumber = [CCLabelTTF labelWithString:myScore fontName:@"Helvetica" fontSize:25.0f];
scoreLabelNumber.color = [CCColor whiteColor];
scoreLabelNumber.position = ccp(self.contentSize.width / 2 + 35, self.contentSize.height - 95);
if(alive == FALSE){
if(score > highScore){
highScore = score;
[[NSUserDefaults standardUserDefaults]setInteger:score forKey:@"highscrore"];
[defaults synchronize];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
高分会显示,但如果退出应用程序,则不会保存有关此高分的信息。我该怎么做才能解决这个问题?
答案 0 :(得分:1)
看起来你已经忘了"将值加载回highScore变量:
highScore = [defaults integerForKey:@"highscrore"];
请注意:
[[NSUserDefaults standardUserDefaults]setInteger:score forKey:@"highscrore"];
[defaults synchronize];
[[NSUserDefaults standardUserDefaults] synchronize];
可以缩短为:
[defaults setInteger:score forKey:@"highscrore"];
[defaults synchronize];
你可能想要修复@" highscrore"错字。