2010-05-29 1 views
0

У меня есть следующий код:NSTimer метка времени TimeInterval вопрос

 
[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, это означает, что timerCount будет называться каждые 0,5 секунды.

Но я теперь, что есть некоторые вещи как timeStamps, и я хочу знать, будет ли NSTimer вызывать метод timerCount в ТОЧНО 0,5 секунды каждый раз.

+1

Купить атомные часы, если вам нужно ТОЧНО 0,5 секунды интервал [[Пожалуйста, укажите требуемую точность]]. – kennytm

ответ

0

Вы не получите этого, используя NSTimer в основном потоке, поскольку таймер вызывается только циклом события.

Если вам нужна максимальная точность, просто создайте поток с собственным контуром сообщений и расставьте там таймер.

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]; 
} 

}