Я разрабатываю приложение, которое отслеживает расстояние и т. Д. Я только что реализовал метод отслеживания общего времени с использованием NSTimer, который работает точно так, как я этого хочу. Но мне нужно преобразовать общее время в часы, поэтому я могу использовать его для расчета калорий и средней скорости, но у меня проблемы с этим!Преобразование секундомера в часы
Вот мой метод таймера:
- (void) startStopWatch {
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(timerController)
userInfo:nil
repeats:YES];
}
- (void)timerController {
_seconds++;
NSLog(@"seconds = %zd", _seconds);
if (_seconds <10){
NSString *secondsString = [NSString stringWithFormat:@"0%li", (long)_seconds];
_SecondsLabel.text = secondsString;
}
else{
NSString *secondsString = [NSString stringWithFormat:@"%li", (long)_seconds];
_SecondsLabel.text = secondsString;
}
if (_seconds == 60){
_minutes++;
_seconds = 00;
NSString *secondsString = [NSString stringWithFormat:@"0%li", (long)_seconds];
_SecondsLabel.text = secondsString;
if (_minutes <10){
NSString *minutesString = [NSString stringWithFormat:@"0%li", (long)_minutes];
_minutesLabel.text = minutesString;
}
else {
NSLog(@"minutes = %zd", _minutes);
NSString *minutesString = [NSString stringWithFormat:@"%li", (long)_minutes];
_minutesLabel.text = minutesString;
}
}
if (_minutes == 60){
self.hoursLabel.hidden = NO;
_hours++;
_minutes = 0;
NSString *minutesString = [NSString stringWithFormat:@"%li", (long)_minutes];
_minutesLabel.text = minutesString;
NSString *hoursString = [NSString stringWithFormat:@"%li", (long)_hours];
_hoursLabel.text = hoursString;
}
[self UpdateTotalTime];
}
и вот мой метод, чтобы преобразовать секунды и минуты в часы:
- (void) UpdateTotalTime {
_secondsToHours = _seconds/3600;
_minutesToHours = _minutes/60;
_totalTime = (_secondsToHours + _minutesToHours + _hours);
NSLog(@"totaltime = %zd", _totalTime);
}
Проблема заключается в том, что ничего не добавляется в _totalTime, любые идеи ? Кроме того, я очень новичок в Objective-C, поэтому я могу пропустить что-то очень простое!
Как объявляются ваши _secondsToHours ... переменные? – Merlevede
Подсказка: просто используйте '% 02li', чтобы получить две цифры с нулевым нулем, если необходимо, вместо операторов if/else. Изучение документации может сохранить строки кода. – zaph
Подсказка: для автоматического исправления кода выберите код, а затем введите control-i. «Если вы не можете прочитать код, вы не можете исправить код« Парафраз из Вилли Джек Дегель. – zaph