我有以下代码:
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(timerCount:) userInfo:nil repeats:YES]; -(void)timerCount:(NSTimer *)timer { NSTimeInterval dt = [timer timeInterval]; // do something }
我得到的NSTimeInterval将是0.5,我把它放在scheduledTimerWithInterval上的时间间隔,这意味着每隔0.5秒就会调用一次timerCount。
但我现在有一些东西作为timeStamps,我想知道NSTimer是否会在每次0.5秒内专门调用timerCount方法。
答案 0 :(得分:0)
你不会在主线程上使用NSTimer,因为定时器只能由事件循环调用。
如果你需要最大精度,只需用它自己的消息循环创建一个线程并在那里安排定时器。
答案 1 :(得分:0)
aTimer = [NSTimer timerWithTimeInterval:(1.0) target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:aTimer forMode: NSDefaultRunLoopMode];
- (void)timerFired:(NSTimer*)theTimer
{
if(condition)
{
//timer terminated
[theTimer isinValid];
}
}