在NSDate调用一个方法
我想在特定的时间和date(使用NSDate
)调用一个方法,但我不能解决如何做到这一点。
我不想使用NSTimer
因为当应用程序进入后台或被closures时,它将暂停。 我不想在后台运行一个,因为这只能解决一半的问题,而且在我看来这是一种浪费的方式。 我想,如果我将来可以在NSDate
中触发一个方法,当应用程序再次打开时,我可以看到当前date是否已经通过了开始date,以及是立即调用还是继续等待。
我想我正在寻找像UILocalNotification
,没有通知。
我希望有一个简单的方法做到这一点,我似乎无法find,所以任何帮助将不胜感激。
起初,它听起来像你想要的performSelector:withObject:afterDelay:
方法。 所以当你想调用select器的时候你有一个NSDate *date
。
NSTimeInterval delay = [date timeIntervalSinceNow]; [self performSelector:@selector(methodToFire) withObject:nil afterDelay:delay];
当然,这不会超出你的运行时间,所以你几乎已经概述了你需要做的事情。 你只需要把date保存到某个地方(有很多方法可以做到这一点),然后在applicationDidBecomeActive
检查它。 你可以使用上面使用的同样的timeIntervalSinceNow
方法。 (如果date已过,则间隔为负)。
if ( [date timeIntervalSinceNow] <= 0 ) { // do something... }
你为什么不使用NSTimer,并在…
- (void)applicationDidBecomeActive:(UIApplication *)application
callback,检查时间和date,并更新计时器,或者如果date已过,则调用该函数。