我的意思是12:01:00,12:02:00 ...iOS如何在分鐘,每分鐘撥打一個方法
在iOS7中,我想在分鐘時間改變時調用方法。換句話說,如果現在是01:55:47,那麼我想在01:56:00 - > 01:57:00 - > 01: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秒,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];
現在,它的工作!
您的計時器設置爲一秒的間隔。現在,如果秒數爲00,則可以在委託函數內部檢查。如果是這樣,請調用您的函數。或在正確的時間打電話給你的delgate。我的意思是你必須打電話給你的delgate在00. –