检查Timer是否正在运行

时间:2017-06-07 22:07:33

标签: ios swift xcode swift3 nstimer

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

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

if (myTimer?.isValid){
} else{
//start timer
}

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

2 个答案:

答案 0 :(得分:1)

您需要检查您的Timer实例isValid(不是Timer类),是否说:if myTimer.isValid? {}

答案 1 :(得分:0)

我建议使用自检startTimer()stopTimer()函数,只有当计时器当前没有运行时才启动计时器,stop函数设置timer变量可靠地nil

var timer : Timer?

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

func stopTimer()
{
    if timer != nil {
       timer!.invalidate()
       timer = nil
    }
}