I have to do heavy operation every < 1s. I’m using NSTimer, but its not that accurate as i expected… I’m using 2 timers. One to update data in my model and 2nd to update my views (few labels and custom ‘fancy-circle’ progress bar)
Ok… my code:
_valueTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(counterTask) userInfo:nil repeats:YES]; _progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateViews) // heavy stuff here userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:_progressTimer forMode:NSRunLoopCommonModes];
As you can see
_progressTimer selector is run every 0.1 sec.
One of the views is my HH:MM:SS time (data from first timer!). It display different time than real time when my progressbar is updating (heavy operation) -> 10 sec in app == 12 sec in real time… Its to much difference. When I comment my progress bar update – it all works correctly
Could you tell me how to force my timer to run exactly after my interval? Or skip one cycle when its too much for it to handle? The most important thing is to not slow down…