0

私はopenglを使用してグラフに取り組んでいます.1秒あたり512値のタイマーを設定したいので、次のようにしました:

self.animationTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/512.0 
                               target:self
                               selector:@selector(drawView) 
                               userInfo:nil 
                               repeats:YES];

draw メソッドでグラフをプロットしましたが、1 秒あたり 512 の値が出力されません。

それが正しいか間違っているかにかかわらず、誰かが私を助けてくれませんか?

4

4 に答える 4

4

NSTimer はおそらくそれほど速く起動できません。

タイマーはリアルタイムのメカニズムではありません。タイマーが追加された実行ループ モードの 1 つが実行中で、タイマーの起動時間が経過したかどうかを確認できる場合にのみ起動します。典型的な実行ループが管理するさまざまな入力ソースのため、タイマーの時間間隔の有効な分解能は 50 ~ 100 ミリ秒程度に制限されます。

http://developer.apple.com/library/ios/#documentation/cocoa/reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html

本当に特別なことをしていない限り、これは 1 秒間に 10 ~ 20 回のティックを提供します。

于 2012-12-10T13:27:46.797 に答える
1

それはうまくいきません。

(少なくとも) 2 つの理由があります。

  1. 典型的な実行ループが管理するさまざまな入力ソースのため、タイマーの時間間隔の有効な分解能は 50 ~ 100 ミリ秒程度に制限されます。」したがって、1 秒あたり約 10 個以上のタイマーが起動することは期待できません。
  2. iOS での最大フレームレートは不明ですが、60 を大幅に超えることにはおそらくあまり意味がありません。
于 2012-12-10T13:25:45.633 に答える
0

1 秒あたり 512 の値をプロットできます。使用したのと同じ timeinterval ですが、加速度計グラフを参照します。 doc/uid/DTS40007410-MainViewController_m-DontLinkElementID_10 要件に従ってカスタマイズしたところ、問題なく動作しました。ありがとう!!!

于 2012-12-11T12:45:58.980 に答える
0
[NSTimer scheduledTimerWithTimeInterval:1.0f/512.0f target:self selector:@selector(drawView) userInfo:nil repeats:YES];

これを使ってみてください

それが機能しているかどうかを教えてください!!!

ハッピーコーディング!!!!

于 2012-12-10T13:00:06.923 に答える