检查计时器是否正在运行

Jac*_*van 5 xcode nstimer ios swift swift3

我一直在尝试用计时器重新填充游戏生活,但是每当我离开视图并返回时,计时器就会重复并变得更快。我试图用Timer?.isValid函数来解决这个问题,只在定时器无效时运行它,所以它永远不会重复,但它似乎无法检查if 语句中的定时器是否无效

这是我到目前为止一直使用的 if 语句:

if (myTimer?.isValid){
} else{
//start timer
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢。

vad*_*ian 6

我建议使用自检startTimer()stopTimer()函数,计时器只有在当前未运行时才会启动,停止函数将timer变量可靠地设置为nil.

var timer : Timer?

func startTimer()
{
    if timer == nil {
        timer = Timer.scheduledTimer...
    }
}

func stopTimer()
{
    if timer != nil {
       timer!.invalidate()
       timer = nil
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我不确定你是否理解,我想检查计时器是否正在运行,而不是启动/停止计时器 (2认同)