此应用程序适用于OSX。我正在使用NSTimer在一天的某个特定时间运行方法。
NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:[NSDate date]];
[components setHour:9];
[components setMinute:30];
[components setSecond:0];
NSDate *date = [myCalendar dateFromComponents:components];
NSTimer *t = [[NSTimer alloc] initWithFireDate:date
interval:0.0
target:self
selector:@selector(fired:)
userInfo:nil
repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
我怎样才能每天重复这个?
答案 0 :(得分:1)
interval:86400
repeats:YES
或者
使用提醒
将事件添加到用户日历或者
山狮当地通知 http://www.renssies.nl/2012/02/mountain-lion-the-new-notifications-center/
答案 1 :(得分:-1)
NSTimer
不适合您想要实现的目标!
相反,请查看OS X 10.8中引入的EKReminder
类或NSUserNotification
。
如果您必须定位早期版本的OS X,请查找涉及EKCalendar的其他选项,或考虑为您处理日期数学的其他服务(IIRC,launchd有一个时间概念,所以应该有其他一些高级API。)
有几个WWDC会议视频处理这些事情 - 包括“事件工具包中的事件和提醒”,以及去年的“国际化提示和技巧”部分。