1

我是 iPhone 开发的新手。我有一个问题。我正在使用一个每秒更新一个 UiLabel 的 NSTimer。现在我有两个问题:

  1. 当我的应用程序进入后台时,当我打开应用程序时。应用程序挂起。
  2. 如果我在其他 ui 屏幕上继续前进或返回,那么当我进入计时器屏幕时,我的标签再次显示 0。

谁能帮我。

我正在使用的代码:

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];

-(void) updateCountdown
{
    secondsLeft--;

    //nits testing
    if(secondsLeft == 1)
    {
         [self.view addSubview:recipePage6View.view];
    }



    if (secondsLeft<0)
    {
        [timer invalidate];
        timer=nil;
        lblDisplayTimer.text =@"00:00:00";

    }
    else
    {
        hours = secondsLeft / 3600;
        minutes = (secondsLeft % 3600) / 60;
        seconds = (secondsLeft %3600) % 60;

        lblDisplayTimer.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
         //lblDisplayTimer.text = [NSString stringWithFormat:@"%02d:%02d",minutes,seconds];
     } 
}
4

1 回答 1

4

您需要设置一个特殊的后台计时器任务,并且在主运行循环中没有一个 NSTimer 会在后台暂停。有关如何执行此操作的文档在这里

于 2013-08-08T10:57:19.917 回答