iPhoneの時計アプリにタイマータブのようなcountdowtimerアプリケーションを書いています。今、私は日付、 '今'と '未来の日'を比較することに問題があります。 すべての変数は合成され、非原子的であり、保持されます。 私はこのコードを今すぐ持っています。nstimerセレクタの日付を比較する
- (IBAction)startTimer:(id)sender {
NSLog(@"startTimer");
pickerView.hidden = YES;
labelView.hidden = NO;
now = [[NSDate alloc] init];
futureDate = [[NSDate alloc] initWithTimeInterval:picker.countDownDuration sinceDate:now];
NSLog(@"Dates.\nNow = (%@) \nfutureDate (%@)", now, futureDate);
timerLabelUpdater = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(labelUpdater) userInfo:nil repeats:YES];
}
- (void)labelUpdater {
if ([now timeIntervalSinceDate:futureDate] < 0.0) {
NSLog(@"YES\nDates.\nNow = (%@) \nfutureDate (%@)", now, futureDate);
} else {
NSLog(@"NO\nNow = (%@) \nfutureDate (%@)", now, futureDate);
}
}
デバッガ情報: 2011-02-08 16:46:02.449アプリ[22504:207] 2011-02-08 16 startTimer:46:02.451アプリ[22504:207]日付。 Now =(2011-02-08 18:46:02 +0000)
futureDate(2011-02-08 18:47:02 +0000) 2011-02-08 16:46:03.451 App [22504:207 ]はい
そして、それは私に "永遠"を与え続けます。 可変時間が表示されている場合は、時計時刻と比較して+ 2時間後になります。これはバグですか?