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

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

if (!myTimer) { //DO } 

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

 if !myTimer { // DO } 

我所做的(两种语言)都是让我的计时器变弱。 在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属性来查询计时器以查看它是否正在运行。

以下选项怎么样? 你能看出这对你有用吗?

 if myTimer.valid { } 
 if !myTimer.valid { //DO }