【发布时间】:2010-11-18 10:08:19
【问题描述】:
有没有一种方法可以在 iOS 设备的系统时间分钟数发生变化时轻松设置通知?
我需要为时间变化做一些 UI 更新。我希望 UI 能够准确更新每分钟的更改,而不是通过 NSTimer 触发器每 60 秒更新一次。
【问题讨论】:
-
制作一个较低分辨率的计时器,比如每 10 秒或其他时间,然后更新屏幕。如果您在秒内更新很重要,请将计时器分辨率设置为小于一秒,并在每分钟更改时更新。
有没有一种方法可以在 iOS 设备的系统时间分钟数发生变化时轻松设置通知?
我需要为时间变化做一些 UI 更新。我希望 UI 能够准确更新每分钟的更改,而不是通过 NSTimer 触发器每 60 秒更新一次。
【问题讨论】:
API 不提供通知,但您可以通过让后台线程轮询系统时间然后在主线程上向 UI 发送自定义通知来滚动自己的通知。
但是,我不会打扰。您无法在任何带有软件 UI 的设备上“准确”地管理时间。您能做的最好的事情就是让 UI 更新发生在用户感知阈值以下。人类无法真正感知小于 100-200 毫秒(1/10 秒)的时间间隔。任何更精确的 UI 都是浪费的。只要应用程序的某些其他部分没有挂起或陷入困境,NSTimer 就可以非常可靠地达到 100 毫秒的窗口。
除非您使用 NSTimer 测试过接口并发现它需要,否则我不会去寻找增加复杂性的方法。
【讨论】: