NSNotication在一天的时间

时间:2013-04-24 15:59:09

标签: objective-c macos nstimer nsnotificationcenter

我需要我的应用程序在一天中的某个特定时间运行方法,我认为最好的方法是设置一个通知,以确定何时可以获得该时间。我之前使用过NSNoticationCenter,但我不确定如何在一天中安排它。

编辑: 我使用NSTimer以不同的方式使用它。这是我的代码

    NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
                                             fromDate:[NSDate date]];
[components setHour: 10];
[components setMinute: 5];
[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:YES];
[[NSRunLoop mainRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];

1 个答案:

答案 0 :(得分:1)

使用NSTimer类方法。创建计时器对象并相应地设置开火日期。在计时器回调方法实现方法中发布所需的通知。

替代方法是使用performSelector:withObject:afterDelay:。在选择器方法中发布所需的通知。