我的意思是12:01:00,12点02分00秒...
在iOS7,我要当的时间分改为调用一个方法。 换句话说,如果现在是1点55分47秒,那么我想在1时56分零零秒调用一个方法 - > 1时57分〇〇秒 - > 1时58分00秒...
所有我发现关于调用一个方法就是约TimeInterval所,但不是我想要的。
我试过这样的代码:
NSTimeInterval roundedInterval = round([[NSDate date] timeIntervalSinceReferenceDate] / 60.0) * 60.0;
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:roundedInterval];
NSTimer *timer = [[NSTimer alloc] initWithFireDate:date
interval:60.0
target:self
selector:@selector(handleEveryMinutes:)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
- (void)handleEveryMinutes:(NSTimer *)timer {
NSLog(@"one minute!");
}
但是这种方法不是在第二0调用。
希望冷静的人能帮帮我!
- - - 我的答案 - - - -
我也明白,为什么我的代码无法正常工作,我需要额外60秒添加到roundedInterval,这是下一分钟的确切时间。 如果不加入60μL秒,fireDate通过,所以,当我跑我的应用程序,它必须立即解雇。
NSTimeInterval roundedInterval = round([[NSDate date] timeIntervalSinceReferenceDate] / 60.0) * 60.0 + 60; // the extra 60 is used to set the correct time Interval between next minute and referenced date.
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:roundedInterval];
现在,它的工作!