0

不确定我是否需要粘贴任何代码来解释这个,这可能是我忽略的一些简单的事情,但initWithFireDate:如果我选择过去的时间,我会立即看到我的 NSTimer 着火了。这很可能是预期的行为,但在 NSTimer 的类参考中找不到提及。

谢谢!

sc。

4

1 回答 1

1

它不是那么明确,但 [1] 提到

“计时器不是实时机制;它仅在添加了计时器的运行循环模式之一正在运行并且能够检查计时器的触发时间是否已过时触发。由于各种输入源,一个典型的运行循环管理, 计时器的时间间隔的有效分辨率限制在 50-100 毫秒的数量级. 如果计时器的触发时间发生在长时间调用期间或运行循环处于未监视的模式计时器,直到下次运行循环检查计时器时计时器才会触发。”

从反复提到在长时间调用期间可能发生的触发时间,我会推断每个计时器都有一个触发时间,可以通过使用间隔直接或间接设置。然后运行循环检查是否有任何触发时间在过去,如果是,则触发该时间,安排重复等,这将导致您观察到的行为。

[1] http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html

于 2011-11-23T09:59:56.197 回答