我一直在尝试尝试获得我的高分保存,或者当应用程序终止并重新打开时显示之前的高分。我使用NSUserDefaults,但没有多少运气。这是我的代码。
这用于获取/设置高分:
-(NSInteger)setHighScore {
highScore = self.score;
key = @"highScore" ;
[[NSUserDefaults standardUserDefaults] setInteger:highScore forKey:key];
return highScore;
}
-(NSInteger)getPreviousHighScore {
highScore = [[NSUserDefaults standardUserDefaults] integerForKey:key];
return highScore; }
NSInteger" highScore"和字符串"键"是静态的,并在课程开始时正确声明。
static NSInteger highScore;
static NSString *key = @"highScore";
在我的didMoveToView中,我有一个标签来测试获得之前的高分...这就是代码。
SKLabelNode *label = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
label.text = [NSString stringWithFormat:@"%i", [self getPreviousHighScore]];
label.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
label.fontColor = [UIColor blackColor];
[self addChild:label];
最后,在我的AppDelegate.m中,我有这个:
[[NSUserDefaults standardUserDefaults] synchronize];
毕竟这个我的标签每次只显示0。我做错了什么?