Вам необходимо использовать объект класса NSTimer
. Некоторые примеры кода:
-(void)startTimer {
theTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/1000.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
//the method updateTimer will be called once every millisecond
}
-(void)updateTimer {
//add one millisecond to the global time variable and display it in a label
}
-(void)stopTimer {
[theTimer invalidate]; //pauses the timer
}
Редактировать
Для использования глобальной переменной времени, NSDate
, вероятно, правильный класс. Вы можете инициализировать объект с использованием временного интервала, например. 600 секунд до сих пор:
NSDate *globalDateTime = [[NSDate alloc] initWithTimeIntervalSinceNow:-600];
Чтобы добавить 1 миллисекунду ко времени:
globalDateTime = [globalDateTime dateByAddingTimeInterval:1.0/1000.0];
И заселить ваше глобальное переменное время в строке:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"]; // use yyyy-MM-dd if you need to show the year, month or day
NSString *dateTimeString = [dateFormatter stringFromDate:globalDateTime];
В «урожаях класса NSTimeInterval субмиллисекундной точности в течение 10 000 лет ».
Обратитесь к компании Apple documentation на NSDate для более подробной информации:
Является ли отметка времени NSDate (или конвертированы в один)? И что вы подразумеваете под «неоднократно» - обновлять и рисовать на экране неоднократно? – Wain
Да Его в NSDate, и я также хочу обновлять и рисовать на экране несколько раз. Я могу использовать для этого таймер. Но во время работы таймера я хочу повторно добавить одну миллисекунду в текущее время. – Sat
Я думаю, вы знаете, что не можете обновлять экран каждую миллисекунду, и у вас есть веская причина для добавления 1 миллисекунды ... – Wain