iOS在UILabel上显示时间作为得分和高分

时间:2014-05-31 14:50:57

标签: ios nstimer scoring

当我试图将分数显示为高分时,我遇到了问题。

这是我的代码,用于以正确的格式获得标签上的时间。

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

但我无法弄清楚如何让它发挥作用

任何建议??

1 个答案:

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

但是我强烈建议改变你处理高分的方式