问题描述
- timeinterval中获取负值?
- 需要做一个比较日期的计时器,结果总是随机停,有时返回时间间隔的值,好像只有时间间隔是负值的时候才能正常工作。代码:
-(IBAction)startTimer:(id)sender{ if (timer == nil) { [startButton setTitle:@""Start"" forState:UIControlStateNormal]; timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES]; date = [NSDate dateWithTimeIntervalSinceNow:testTask.timeInterval]; //instance variable } else { [startButton setTitle:@""Stop"" forState:UIControlStateNormal]; [timer invalidate]; timer = nil; }}-(void)timerAction:(NSTimer *)t{ NSDate *currentDate = [NSDate date]; NSTimeInterval updatedTimeInterval = [date timeIntervalSinceDate:currentDate]; if (updatedTimeInterval > 0){ if (self.timer) { [self timerExpired]; [self.timer invalidate]; self.timer = nil; } } else { testTask.timeInterval = updatedTimeInterval; NSLog(@""%.2f"" testTask.timeInterval); NSError *error; if (![self.context save:&error]) { NSLog(@""couldn't save: %@"" [error localizedDescription]); } } NSUInteger seconds = (NSUInteger)round(testTask.timeInterval); NSString *string = [NSString stringWithFormat:@""%02u:%02u:%02u"" seconds / 3600 (seconds / 60) % 60 seconds % 60]; timerLabel.text = string; NSLog(@""%f"" testTask.timeInterval);}
时间: 2024-10-31 17:38:55