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 애플리케이션 46 : 22504 : 207] 2011-02-08 16가 startTimer 앱 02.451 [22,504 : 207] 날짜. Now = (2011-02-08 18:46:02 +0000)
futureDate (2011-02-08 18:47:02 +0000) 2011-02-08 16 : 46 : 03.451 앱 [22504 : 207 ] 예
그리고 내게 "영원히"계속 머물러 있습니다. 하지만 변수 시간이 표시되면 내 시계 시간과 비교하여 향후 + 2 시간입니다. 이거 버그 야?