Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Build a Game with Sprite Kit Particle Systems and Keeping Score Scoring and Life Tracking

Amin Ahmadi
Amin Ahmadi
4,601 Points

Saving HighScores

How do you go about saving your highest score using NSUserDefaults? My attempt is to save it in the addPoints section in the HudNode.m but it doesnt save. It also updates incorrectly during the progression of the game; the value for the high score is the previous value of the score. My Code:

 - (void) addPoints:(NSInteger)points {
    self.score += points;

    SKLabelNode *scoreLabel = (SKLabelNode*) [self childNodeWithName:@"Score"];
    scoreLabel.text = [NSString stringWithFormat:@"%d", self.score];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    self.highScore = [defaults integerForKey:@"HighScoreSaved"];
    if (self.score > self.highScore) {
        [defaults setInteger:self.score forKey:@"HighScoreSaved"];

    }
    SKLabelNode *highScoreLabel = (SKLabelNode *) [self childNodeWithName:@"High Score"];
    highScoreLabel.text = [NSString stringWithFormat:@"High Score: %d", self.highScore];


}