我的简单iOS计时器应用程序有问题。在iOS 7上它没有问题,但在iOS 8系统上,我的开始按钮在初始化NSTimer后不再做出反应。
这是我的代码:
- (IBAction)StartStop:(id)sender {
if (startbutton == NO){
[StartButton setTitle:@"Stop" forState:UIControlStateNormal];
startbutton= YES;
rundenzaehler = 0;
RundenText = @"";
[self Start];
startDate = [[NSDate date] init];
}else {
[StartButton setTitle:@"Start" forState:UIControlStateNormal];
startbutton= NO;
[stopwatchTimer invalidate];
stopwatchTimer = nil;
startDate = nil;
}
}
- (void)Start{
[RundenTextView setText:@""];
stopwatchTimer = [NSTimer scheduledTimerWithTimeInterval: 0.001 target:self selector:@selector(tick:) userInfo:nil repeats:YES];
[stopwatchTimer fire];
}
- (void)tick:(NSTimer *)theTimer
{
//NSTimeInterval interval = -[startDate timeIntervalSinceNow];
NSTimeInterval interval =[startDate timeIntervalSinceNow] * -1000.0;
int millis = ((int)interval)% 1000;
int seconds = (((int)interval)/1000) %60;
int minutes = (((int) (interval/1000) - seconds) / 60) % 60;
int hours = (((int) interval/1000) - seconds - 60 * minutes) % 3600;
ZeitString = [NSString stringWithFormat:@"%.2d:%.2d:%.2d:%.3d", hours,
minutes, seconds, millis];
[elapsedTime setText:ZeitString];
}
我不知道为什么它在iOS 7上没有问题而在iOS 8上没有问题。也许有人可以帮助我。 iOS 8是否可能出现运行NSTimer的问题,该问题每0.001秒更改一次文本视图的值?
我用其他NSTime间隔尝试了它,用0.1它没有问题。但是已经有0.01按钮不再反应了。还有另一种方法来显示毫秒的经过时间吗?
答案 0 :(得分:0)
更改- (IBAction)StartStop:(id)sender function.
您已将其称为按钮名称。因此,它会考虑获取,不适当的功能,或类似的东西。
更改“StartStopButtonPressed”中的名称,这样您就不会有更多问题。