惊人的分数值

时间:2012-01-25 20:47:10

标签: iphone objective-c xcode cocos2d-iphone

请有人帮帮我。我试图使用下面的代码在屏幕上显示我的游戏的高分和分数,但我得到这些值

高: 327178665342

得分: 89254400

与我在hud显示屏上的实际分数不一致。

这是我用来检索和显示分数的代码:

-(id)init{
self = [super init];
if (self != nil) {

      int score;
    _score = score;
    self.scoreLabel.string = [NSString stringWithFormat:@"Score: %d",_score];

        // 6
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSInteger highScore = [defaults integerForKey:@"BatHighScore"];

        // 7
    if(score >= highScore) {
        highScore = score;
        [defaults setInteger:score forKey:@"BatHighScore"];
        [defaults synchronize];
    }

    self.highScoreLabel.string = [NSString stringWithFormat:@"High:    %d",highScore]

   }
 return self;
}

@end

我在这里做错了吗?

1 个答案:

答案 0 :(得分:5)

您可能永远不会在代码中初始化score并获得垃圾值。

int score;      // garbage
_score = score;

尝试使用默认值初始化score,您应该获得更好的结果 你在这里想要完成的事情并不是很清楚,也许你想要定义一个像这样的指定初始化器:

-(id)initWithScore:(NSInteger)score {
    self = [super init];
    if (self != nil) {
       _score = score;
       // ...