如何在mac os x上的固定时间执行函数?

时间:2013-02-21 10:55:03

标签: objective-c macos

我为mac osx编写了一个简单的应用程序,它使用系统时间计算一些数据,我希望每次时钟到达时运行一个特定的例程。 这有什么系统api吗?
我怎么做的?

实际上我的应用程序中有一个状态栏项目,显示任何选定日历中的当前日期,例如gregorian和islamic,我希望此值与系统时间同步

1 个答案:

答案 0 :(得分:-1)

如果您的例行程序是- routine:(NSTimer *)timer的方法object

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];