我是 obj-C for iOS 平台的初学者,正在尝试构建一些简单的项目来构建我的基础。
我有一个按钮可以增加标签的 NSTimer 时间,但是当我使用 NSLog 记录时间时,它使用时间增量之前的值。我需要能够记录更新的时间(增量后),因为我需要该值,并且在解决这部分问题后正在 IBAction 中实现更多功能。
例如,在我按下 15 分钟时,NSLog 会将其读取为“00:15:00.0”而不是“00:35:00.0”。
- (IBAction)onSkipPressed:(id)sender {
startDate = [startDate dateByAddingTimeInterval:-1200];
NSLog(@"%@",self.timeLabel.text);
}
有谁知道这个问题的原因?如果我在 15 分钟调用此 IBAction,我应该如何解决它,以便 NSLog 将其读取为“00:35:00.0”。
编辑 - 开始按钮将启动计时器,timeLabel 将获取字符串。很抱歉错过了这么重要的细节。我认为项目中没有与此功能相关的任何其他代码。谢谢你向我指出。
- (void)updateTimer
{
NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate];
NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss.S"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
NSString *timeString=[dateFormatter stringFromDate:timerDate];
timeLabel.text = timeString;
}
我的 IBAction 触发计时器
- (IBAction)onStartPressed:(id)sender {
startDate = [NSDate date];
gameTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0
target:self
selector:@selector(updateTimer)
userInfo:nil
repeats:YES];
//hide start button and show timeLabel
startButton.hidden=true;
timeLabel.hidden=false;
}