Ваш stringWithFormat запрашивает 3 целых числа, но вы передаете только одно;)
Вот код, который я использовал раньше, чтобы сделать то, что, как я думаю, вы пытаетесь сделать:
- (void)populateLabel:(UILabel *)label withTimeInterval:(NSTimeInterval)timeInterval {
uint seconds = fabs(timeInterval);
uint minutes = seconds / 60;
uint hours = minutes / 60;
seconds -= minutes * 60;
minutes -= hours * 60;
[label setText:[NSString stringWithFormat:@"%@%02uh:%02um:%02us", (timeInterval<0?@"-":@""), hours, minutes, seconds]];
}
чтобы использовать его с таймером, сделайте это:
...
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
...
- (void)updateTimer:(NSTimer *)timer {
currentTime += 1;
[self populateLabel:myLabel withTimeInterval:time;
}
где currentTime - это NSTimeInterval, который вы хотите считать по одному каждую секунду.