当系统时钟变为特定时间时,运行代码的最佳方法是什么?显然我可以进行民意调查,但这似乎效率低下。
我不想要一个计时器;我希望能够在(例如)每天晚上10点做一些事情。
答案 0 :(得分:2)
NSTimer
几乎是你以后在Cocoa中做的事情,并且可以创建一个带有“开火日期”的东西,但如果计算机在此期间进入睡眠状态,该日期将被推迟(或者如果时钟改变了。)
通过计时器轮询可能不是一个糟糕的选择;它允许您安排许多事件,但只有一个机制激活它们。一个每15或30秒重复一次的计时器,并查看NSDates
列表以查看是否应该发生某些事情,不会产生有意义的性能影响。
另一种选择是使用NoodleKit的NSTimer
类别来解释时钟变化。有关于它的博客文章:http://www.noodlesoft.com/blog/2010/07/01/playing-with-nstimer/,代码在GitHub上可用:https://github.com/MrNoodle/NoodleKit计时器为NSWorkspace
睡眠/唤醒通知以及时区更改通知注册自己并调整其相应的开火时间。
答案 1 :(得分:-1)
我不确定这是你在找什么,但你可能想尝试使用automator,正如here所述。