ios - 检查定时器是否正在运行

标签 ios swift xcode swift3 nstimer

我一直在尝试使用计时器重新填充游戏生命,但每当我离开 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/

相关文章:

swift - 需要按取消按钮两次才能转到上一个 View Controller

ios - Facebook 无法在 app swift 3 中打开页面

ios - XCode 找不到特定 iOS 库/框架项目的符号

ios - PanGesture 和一些基础数学

odbc - 将 iPhone 连接到 ODBC 数据库

ios - 在 cllocationdistance 中转换数据时出现问题

iphone - 自定义 UITableViewCell 宽度在 tableview reloadData 上调整大小

ios - 如何依赖 MFMailComposeViewController 及其类方法进行单元测试?

ios - 获取对 SceneKit 目录 Swift 的引用

ios - 您清理项目中图像资源的方法是什么