仅在第一个计时器停止后重启计时器

时间:2018-06-11 15:54:54

标签: swift timer

我创建了自己的名为myTimer的计时器类。我只想在第一个计时器停止时再次启动myTimer。我该如何解决这个问题?

class myTimer{
    var timer = Timer()
     var totalTime = 0
    let score = Int(arc4random_uniform(100))

    init()
    {

}
func start(){
        timer.invalidate()
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: true) 

  }

func stop(){

        timer.invalidate()
        totalTime = 0    

}

@objc func timerUpdate() {

        totalTime += 1
        print(totalTime)

    if(totalTime == 10){

        stop()
    }


    }
}

1 个答案:

答案 0 :(得分:0)

你说:

  

我不希望它在上一个计时器运行时启动。

您可以使用guard语句检查timernil还是isValidfalse

func start() {
    if timer?.isValid ?? false { return }
    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: true)
}