如何在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属性来查询计时器是否正在运行。

关于ios - 如何在Swift中检查NSTimer是否正在运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31192472/

10-09 16:41