2012-07-09 61 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

相關問題