如何将时间间隔设置为每秒512?

时间:2012-12-10 12:56:49

标签: iphone objective-c nstimer

我正在使用opengl进行图形处理,我想设置每秒512个值的计时器我喜欢这样:

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

在绘制方法中,我绘制了图表但不是每秒打印512个值。

任何人都可以帮助我,无论是对还是错?

4 个答案:

答案 0 :(得分:4)

NSTimer可能无法快速发射。

  

计时器不是实时机制;只有当添加了计时器的其中一个运行循环模式正在运行并且能够检查计时器的触发时间是否已经过去时,它才会触发。由于典型的运行循环管理各种输入源,因此定时器的时间间隔的有效分辨率限制在50-100毫秒的数量级。

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

除非你做的事非常特别,否则每秒会给你10-20个滴答。

答案 1 :(得分:1)

这不会起作用。

至少有两个原因。

  1. Because of the various input sources a typical run loop manages, the effective resolution of the time interval for a timer is limited to on the order of 50-100 milliseconds”。所以你不能指望每秒钟有超过十个计时器发射。
  2. 不确定iOS上的最大帧率是多少,但是远远超过60可能没什么意义。

答案 2 :(得分:0)

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

尝试使用这个

让我知道它是否有效!!!

快乐编码!!!!

答案 3 :(得分:0)

我能够每秒绘制512个值。我使用相同的时间间隔,但我参考了加速度计图:http://developer.apple.com/library/ios/#samplecode/AccelerometerGraph/Listings/MainViewController_m.html#//apple_ref/doc/uid/DTS40007410-MainViewController_m-DontLinkElementID_10 我根据我的要求定制它,它工作得很好。 谢谢!!!