2012-07-09 63 views
1

当系统时钟变为特定时间时,运行代码的最佳方式是什么?显然我可以投票,但这似乎效率低下。根据系统时钟在特定时间运行代码

我不想要一个计时器;我希望能够在每天晚上10点(例如)做些事情。

+0

你是不是指每晚**晚上10点**?这不再是一天(笑话)。 – 2012-07-09 22:53:04

+2

你在OS X上有'cron',对吗?只是一个想法。 – Andrew 2012-07-09 22:53:51

回答

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

+0

谢谢。这似乎是我正在寻找的。 – 2012-07-10 20:56:22

-1

我不确定这是你在找什么,但你可能想尝试automator,如解释here

相关问题