Время отображения iOS в виде счета и рекорда на UILabel

У меня проблема, когда я пытаюсь отобразить счет как рекорд.

Это мой код для получения времени на этикетке в правильном формате.

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

Формат оценки отображается правильно. счет: 1 с:186 мс

но рекорд кажется неправильным Ваш рекорд: 1186

знаю, что эта строка неверна

resultHighScoreLabel.text = [NSString stringWithFormat:@"%i",highScore +10];

но я не могу понять, как заставить его работать

какие-либо предложения??


person gkonstandas    schedule 31.05.2014    source источник
comment
Как должен отображаться рекорд? 1с:186мс?   -  person Sebastian Borggrewe    schedule 31.05.2014
comment
Вы извлекаете высокий балл в целое число, поэтому оно отображается как целое число.   -  person zaph    schedule 31.05.2014
comment
Да, это правильное отображение. Ваш рекорд: 1 с: 186 мс.   -  person gkonstandas    schedule 31.05.2014


Ответы (1)


Это быстрое исправление:

int newHighscore = highScore+10;

int seconds = ((int)floor((newHighscore)/1000));
int milliseconds = newHighscore%1000;

resultHighScoreLabel.text = [NSString stringWithFormat:@"%is:%ims",seconds,milliseconds];

Однако я настоятельно рекомендую изменить способ обработки рекордов.

person Sebastian Borggrewe    schedule 31.05.2014
comment
Как отмечалось выше: Quickfix. Это должно намекнуть на путь. Однако ты прав на 100% @Zaph. Я изменил код для лучшей читабельности. - person Sebastian Borggrewe; 31.05.2014