请有人帮帮我。我试图使用下面的代码在屏幕上显示我的游戏的高分和分数,但我得到这些值
高: 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
我在这里做错了吗?
答案 0 :(得分:5)
您可能永远不会在代码中初始化score
并获得垃圾值。
int score; // garbage
_score = score;
尝试使用默认值初始化score
,您应该获得更好的结果
你在这里想要完成的事情并不是很清楚,也许你想要定义一个像这样的指定初始化器:
-(id)initWithScore:(NSInteger)score {
self = [super init];
if (self != nil) {
_score = score;
// ...