我一直在尝试使用计时器重新填充游戏生命,但每当我离开 View 并返回时,计时器就会重复并变得更快。我试图用 Timer?.isValid
函数解决这个问题,只在计时器无效时运行计时器,因此它永远不会重复,但它似乎无法检查计时器是否 invalid 在 if 语句中。
这是我到目前为止一直在使用的 if 语句:
if (myTimer?.isValid){
} else{
//start timer
}
如有任何帮助,我们将不胜感激。
最佳答案
我推荐使用自检的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
}
}
关于ios - 检查定时器是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44423574/