当我试图将分数显示为高分时,我遇到了问题。
这是我的代码,用于以正确的格式获得标签上的时间。
- (void)populateLabelwithTime:(int)milliseconds {
int seconds = milliseconds / 1000;
int minutes = seconds / 60;
int hours = minutes / 60;
seconds -= minutes * 60;
minutes -= hours * 60;
resultScoreLabel.text = [NSString stringWithFormat:@"%ds:%dms",seconds, milliseconds%1000];
if (currentTime > highScore) {
[[NSUserDefaults standardUserDefaults] setInteger:currentTime forKey:@"highscore"];
resultHighScoreLabel.text = [NSString stringWithFormat:@"%i",highScore +10];
}
else {
}
}
-(void)scoring {
currentTime += 10;
[self populateLabelwithTime:currentTime];
highScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"highscore"];
}
分数格式显示正确。 得分为:1s:186ms
但是高分出现了错误 您的最高分是:1186
知道这条线路错了
resultHighScoreLabel.text = [NSString stringWithFormat:@“%i”,highScore +10];
但我无法弄清楚如何让它发挥作用
任何建议??
答案 0 :(得分:1)
这是quickfix:
int newHighscore = highScore+10;
int seconds = ((int)floor((newHighscore)/1000));
int milliseconds = newHighscore%1000;
resultHighScoreLabel.text = [NSString stringWithFormat:@"%is:%ims",seconds,milliseconds];
但是我强烈建议改变你处理高分的方式