0

次のコードがあります。

[NSTimer scheduleTimerWithTimeInterval:0.5 target:self selector:@selector(timerCount:) userInfo:nil repeats:YES];

-(void)timerCount:(NSTimer *)timer
{
    NSTimeInterval dt = [タイマーの時間間隔];
    //何かをする
}

取得した NSTimeInterval は 0.5 になります。これは、scheduledTimerWithInterval に設定した時間間隔です。これは、timerCount が 0.5 秒ごとに呼び出されることを意味します。

しかし、timeStamps としていくつかのものがあるので、NSTimer が毎回正確に 0.5 秒で timerCount メソッドを呼び出すかどうかを知りたいです。

4

2 に答える 2

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

}

于 2012-08-31T12:17:11.687 に答える
0

タイマーはイベントループによってのみ呼び出されるため、メインスレッドで NSTimer を使用してもそれは得られません。

最大の精度が必要な場合は、独自のメッセージ ループを持つスレッドを作成し、そこでタイマーをスケジュールします。

于 2011-02-04T09:21:20.993 に答える