如何在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/