我创建了自己的名为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()
}
}
}
答案 0 :(得分:0)
你说:
我不希望它在上一个计时器运行时启动。
您可以使用guard
语句检查timer
是nil
还是isValid
是false
:
func start() {
if timer?.isValid ?? false { return }
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerUpdate), userInfo: nil, repeats: true)
}