NSDatePicker,带有initWithFireDate的NSTimer:如果我选择过去的日期/时间,则触发

时间:2011-11-23 09:48:37

标签: objective-c nstimer nsdatepicker

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

谢谢!

SC。

1 个答案:

答案 0 :(得分:1)

“计时器不是实时机制;只有在添加了计时器的其中一个运行循环模式正在运行并且能够检查计时器的触发时间是否已经过去时,它才会触发。典型的运行循环管理的各种输入源,定时器的时间间隔的有效分辨率限制在50-100毫秒的量级。如果定时器的触发时间发生在长呼出期间或运行循环在如果模式没有监视定时器,则在下次运行循环检查定时器之前,定时器不会触发。“

从长时间标注过程中反复提及发射时间 发生,我推断每个计时器都有一个直接或间接设置的发射时间间隔。然后运行循环检查过去是否有任何触发时间,如果是,则触发该时间,调度重复等,这将导致您观察到的行为。

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