如何在Swift中检查NSTimer是否正在运行?

时间:2015-07-02 18:55:38

标签: ios iphone swift

如何在Swift中检查NSTimer是否正在运行。在obj-c中,代码应该像我猜的那样:

if (!myTimer) {
  //DO
}

我试图像这样在Swift中设置它并且它显示错误。

if !myTimer {
 // DO
}

4 个答案:

答案 0 :(得分:30)

我所做的(两种语言)都是让我的计时器变弱。在swift中,它将是一个弱选项。

weak var myTimer: NSTimer?

然后我用

创建一个计时器
myTimer = NSTimer.scheduledTimerWithTimeInterval(1,
          target: self,
          selector: "timerFired:",
          userInfo: nil,
          repeats: false)

然后你可以使用

if timer == nil

告诉它是否正在运行。

要停止计时器,只需拨打

即可
myTimer?.invalidate()

在Objective-C中它将是

[myTimer invalidate];

这在Objective-C中有效,因为向nil指针发送消息是有效的,并且什么都不做。

如果您不想使用弱选项,您可以通过查看valid属性来查询计时器以查看它是否正在运行。

答案 1 :(得分:15)

以下选项怎么样?你能看出这对你有用吗<​​/ p>

if myTimer.valid {
}

答案 2 :(得分:3)

if !myTimer.valid {
    //DO
}

答案 3 :(得分:1)

快速4答案:

if timer.isValid{

            }

https://developer.apple.com/documentation/foundation/timer