iOS:在特定时间调用方法

时间:2012-02-09 13:22:44

标签: iphone objective-c ios xcode ipad

我正试图在这个时候调用一个方法:00:01 AM这是我的代码,但我找不到为什么这段代码不调用我的方法的问题。

- (BOOL)date:(NSDate *)date hour:(NSInteger)h minute:(NSInteger)m {

    NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:currentCalendar];

    NSDateComponents *componets = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit )fromDate:[NSDate date]];
    if ([componets hour ] == h && [componets minute] == m) {

        return YES;
    }
    return NO;
}



- (void)updateNewDate {

    if ([self date:[NSDate date] hour:4 minute:49]) {

        label.text = @"oyooy";
    }
}

- (void)viewDidLoad {

[self updateNewDate];
}

如果您有任何其他方法,请告诉我。

2 个答案:

答案 0 :(得分:2)

本地通知是要走的路.......

...编辑  第二种方法是在应用程序启动时获取当前时间并找到下一个午夜的时间,然后在该时间间隔后启动计时器。 希望这有帮助。

答案 1 :(得分:2)

实际上你的代码运行正常但需要刷新...例如你可以使用NSTimer 刷新你的方法:

[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(updateNewDate) userInfo:nil repeats:YES];