2013-02-21 90 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