I have an integer stored in user defaults for my game's high score. Every time I start the game I want to check if the score is bigger than the previous high score, so I do this:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:highScoreNum forKey:@"highScoreNumber"];
if (highScoreNum <= score) {
highScoreNum = score;
SKLabelNode *highLabel = (SKLabelNode *)[self childNodeWithName:@"highLabel"];
highLabel.text = [NSString stringWithFormat:@"%ld", (long)highScoreNum];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:highScoreNum forKey:@"highScoreNumber"];
}
else if (highScoreNum > score) {
SKLabelNode *highLabel = (SKLabelNode *)[self childNodeWithName:@"highLabel"];
highLabel.text = [NSString stringWithFormat:@"%ld", (long)highScoreNum];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:highScoreNum forKey:@"highScoreNumber"];
}
and at the place where I declare the variable I do this:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:highScore forKey:@"highScoreNumber"];
highLabel.text = [NSString stringWithFormat:highScore];
but I always get 0 in highScoreNum
.