在我正在制作的一个相当简单的应用程序中,我使用了许多 NSTimer,它们以 0.01 秒的速度运行,用于更改多个图像的位置。这会导致严重滞后。我怎样才能解决这个问题?请详细解释,因为我对应用程序开发相当陌生。
问问题
248 次
1 回答
3
来自 NSTimer Docs(重点:我的):
定时器不是实时机制;它仅在已添加计时器的运行循环模式之一正在运行并且能够检查计时器的触发时间是否已过时触发。由于典型的运行循环管理的各种输入源,计时器的时间间隔的有效分辨率被限制在50-100 毫秒的数量级。如果在长时间调用期间或运行循环处于不监视计时器的模式下发生计时器的触发时间,则计时器不会触发,直到下一次运行循环检查计时器。因此,定时器触发的实际时间可能是计划触发时间之后的一个重要时间段。
如果您想在显示频率下工作,请参阅CADisplayLink
。
但是,您应该首先了解您的程序现在将时间花在哪里,以了解是什么使它变慢(分析器)。
于 2012-09-01T21:42:25.763 回答