2013-02-21 91 views
0

我寫一個簡單的mac osx應用程序與系統時間一起工作來計算一些數據,我想運行一個特定的例程每次時鐘到12:00
是否有任何系統API?
我該怎麼做?如何在mac os x上的固定時間執行函數?

其實我已經在我的應用程序,顯示當前日期在本月像陽曆和伊斯蘭任何選定的日曆狀態欄項目,我想這個值將與系統時間

+0

而且會發生什麼? – trojanfoe 2013-02-21 10:59:12

+0

如果是這樣,我的應用程序在mac狀態欄中顯示錯誤的數據 – Farnabaz 2013-02-21 11:07:44

+2

如果12:00當天不存在,或者存在兩次,該怎麼辦? (在巴西,這是由於夏令時發生的) – 2013-02-21 17:50:43

回答

-1

進行同步。如果你的日常是的object方法- routine:(NSTimer *)timer:如果您的應用程序沒有在12:00運行

NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate]; // Current time 
NSTimeInterval then = ((int)now + 86400) % 86400; // Next 12am 
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:then]; 
NSTimer *timer = [[NSTimer alloc] initWithFireDate:date interval:86400 target:object @selector(routine:) userInfo:nil repeats:YES]; 
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; 
+1

這不起作用。並非所有的日子都有86400秒。 – 2013-02-21 17:50:23