检查计时器是否为 运行
Check if Timer is running
我一直在尝试使用计时器重新填充游戏生命,但每当我离开视图并 return 时,计时器就会重复并变得更快。我试图用 Timer?.isValid
函数解决这个问题,只在定时器无效时 运行 定时器,所以它永远不会重复,但它似乎无法检查定时器是否 invalid 在 if 语句中。
这是我目前使用的 if 语句:
if (myTimer?.isValid){
} else{
//start timer
}
如有任何帮助,我们将不胜感激。
您需要检查您的 Timer
实例是否 isValid
(不是 Timer
class),比方说:if myTimer.isValid? {}
。
我推荐使用自检startTimer()
和stopTimer()
功能,定时器只有在当前不在运行时才会启动,停止功能设置timer
变量可靠地 nil
.
var timer : Timer?
func startTimer()
{
if timer == nil {
timer = Timer.scheduledTimer...
}
}
func stopTimer()
{
if timer != nil {
timer!.invalidate()
timer = nil
}
}
我一直在尝试使用计时器重新填充游戏生命,但每当我离开视图并 return 时,计时器就会重复并变得更快。我试图用 Timer?.isValid
函数解决这个问题,只在定时器无效时 运行 定时器,所以它永远不会重复,但它似乎无法检查定时器是否 invalid 在 if 语句中。
这是我目前使用的 if 语句:
if (myTimer?.isValid){
} else{
//start timer
}
如有任何帮助,我们将不胜感激。
您需要检查您的 Timer
实例是否 isValid
(不是 Timer
class),比方说:if myTimer.isValid? {}
。
我推荐使用自检startTimer()
和stopTimer()
功能,定时器只有在当前不在运行时才会启动,停止功能设置timer
变量可靠地 nil
.
var timer : Timer?
func startTimer()
{
if timer == nil {
timer = Timer.scheduledTimer...
}
}
func stopTimer()
{
if timer != nil {
timer!.invalidate()
timer = nil
}
}