暂停/恢复NSTimer

时间:2014-05-23 13:28:09

标签: ios objective-c xcode ios7 nstimer

我知道这个问题已经被问到了,我已经完成了所有的帖子,但我还是不能让它工作,我想我只是一个菜鸟。

这是问题所在。我按照了如何创建一个点击游戏的教程,我正在尝试添加一个暂停按钮,以便当玩家点击它时,计时器(仅30秒)暂停,而不是停止,然后恢复。我尝试过实现其他解决方案,但我无法集成它,程序不断崩溃。以下是我创建的方法:

    //Pause Game Methods
    -(void)pauseTimer {
        if(isPaused == YES) {
           //IMPLEMENT SOMETHING
        }
    }

    - (IBAction)pauseButton:(UIButton *)sender {
      isPaused = YES;
    }

    - (IBAction)resumeButton:(UIButton *)sender {
      isPaused = NO;
    }

感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

您无法暂停和恢复计时器。要“暂停”,请使计时器无效并将其丢弃(您必须永远不要触摸无效的计时器)。要“恢复”,就像旧的一样新建一个。

答案 1 :(得分:0)

正确的使用方式&处理NSTimer是:

BOOL isTimerValid = TRUE;
myTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(doAction) userInfo:nil repeats:YES];

现在停止:

if (isTimerValid == TRUE)
{
    [ScrollTimer invalidate];
    isTimerValid = FALSE;
}

注意:NSTimer中没有提供暂停或恢复的方法。