为什么赢得高分?

时间:2014-07-15 18:22:36

标签: ios objective-c cocos2d-iphone store

我真的无法弄清楚为什么我的高分不会保存。作为序言,这是我要完成的一般任务。

  • 如果分数高于高分,则高分将成为分数。
  • 如果用户退出应用,则高分数据将保持不变。
  • 当用户输入游戏时,在屏幕上显示高分。

以下是相关代码。

在实施中:

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];


    }

}

高分会显示,但如果退出应用程序,则不会保存有关此高分的信息。我该怎么做才能解决这个问题?

1 个答案:

答案 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"错字。