В настоящее время я использую фрагмент кода, представленный ниже, чтобы запускать некоторые методы каждую секунду. Мое приложение работает в фоновом режиме. Проблема в том, что если компьютер просыпается после периода ожидания, таймер хочет задним числом запустить все пропущенные методы. Подобные проблемы возникают, если пользователь должен изменить время системных часов.
По сути, я хочу реализовать правильный метод таймера, который будет вызывать мои методы только каждую текущую секунду d. Если прошла секунда (или минута, или час, или день) и по какой-либо причине методы не были вызваны, я хочу, чтобы мое приложение продолжало работу с текущего момента времени.
Кроме того, можем ли мы сохранить это при использовании NSTimer?
Спасибо!
-(void)start
{
NSTimer * timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(tasks:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode: NSDefaultRunLoopMode];
}