1

タイマーが必要なアプリをやっています。私は試しNSTimerましたが、NSTimer常に負けたり遅れたりします。時間を正確に記録できる iOS SDK のクラスはありますか。20ms から 40ms の精度で問題ありません。一定の時間間隔で画像を変更できるようにしたいと思います。

NSTimer *timer1 = [NSTimer scheduledTimerWithTimeInterval:.04f target:self    selector:@selector(timer1) userInfo:nil repeats:YES];
- (void)timer1
{
   NSLog(@"timer1 timer %@",[NSDate date]);
}
4

4 に答える 4

4

NSTimer高解像度タイマーではありません。NSTimerクラスのドキュメントから:

一般的な実行ループが管理するさまざまな入力ソースのため、タイマーの時間間隔の有効な解決は50〜100ミリ秒のオーダーに制限されます。

@CJ Foleyが提案するリンクに加えて、dispatch_after機能をチェックアウトすることができます。

于 2012-03-16T13:39:45.747 に答える
3

ディスパッチソースタイマーの使用を検討しましたか? これまでに観察したことから、このタイマーは非常に正確です。

Apple のプログラミング ガイドの 1 つへのリンクを次に示します。

http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html#//apple_ref/doc/uid/TP40008091-CH103-SW1

サブセクション「タイマーの作成」を確認してください。

于 2012-06-27T18:20:56.237 に答える
0

NSDate のテスト方法が原因で、結果が偽陰性である可能性がありますか?

この質問では、NSDate からミリ秒の精度を取得する方法について説明します。

于 2012-03-16T13:24:25.220 に答える