惊人的分数值

Zak*_*aki 1 iphone xcode objective-c 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
Run Code Online (Sandbox Code Playgroud)

我在这里做错了吗?

小智 5

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

int score;      // garbage
_score = score;
Run Code Online (Sandbox Code Playgroud)

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

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