iOS8 - 按钮在启动NSTimer后没有反应

时间:2014-11-26 20:13:17

标签: ios xcode button ios8 nstimer

我的简单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按钮不再反应了。还有另一种方法来显示毫秒的经过时间吗?

1 个答案:

答案 0 :(得分:0)

更改- (IBAction)StartStop:(id)sender function.您已将其称为按钮名称。因此,它会考虑获取,不适当的功能,或类似的东西。

更改“StartStopButtonPressed”中的名称,这样您就不会有更多问题。