rsc*_*ott 6 macos cocoa objective-c nstimer
我想在文本字段中显示应用程序中的时间(包括秒),非常简单.我目前所做的是创建一个NSTimer,每0.1秒运行一次,获取系统时间并更新文本字段.这似乎是一种非常低效的方法来实现这一目标.有没有更好的办法?
您是以十分之一秒(或更精细)的分辨率显示它吗?
如果是这样,我认为没问题.通常情况下,民意调查很糟糕,因为你所检查的内容可能没有改变,但是时间不会停留在你身上.所以十分之一秒的计时器很好.
如果没有,创建一个间隔为所需分辨率的计时器,然后获取其开火日期,将其向下舍入到所需的分辨率(例如,如果每秒更新一秒,则为整秒),并将其设置为新的开火日期.然后,您的计时器将仅与适合更新时钟视图的时间同时触发.
请注意,虽然时间总是移动,但它并不总是线性移动:它可以向前或向后跳一小时或半小时,如果用户(或ntpd)更改系统时钟设置,则可以向前或向后跳.在Mac OS X 10.6及更高版本中,您可以观察NSSystemClockDidChangeNotification,并在发生这种情况时重新调整计时器的开火日期.