iOS:在特定时间调用方法

我试图在这个时间调用一个方法: 00:01 AM00: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]; } 

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

实际上你的代码工作正常但它需要刷新…例如你可以使用NSTimer来刷新你的方法:

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

本地通知是要走的路….

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