我一直在制作秒表。
启动、停止和暂停 Action 效果很好。
但是,当我点击开始操作两次时
time = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
这个 Action 再次开始,时间过得更快!
如何阻止该操作?
提前致谢!!!
最佳答案
您需要在类的顶部声明一个变量:
var timer = NSTimer()
然后在开始按钮中分配此计时器变量,如下所示:
@IBAction func startTimerButtonTapped(sender: UIButton) {
time = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
}
每当你想停止这个计时器时,你都需要使其无效,如下所示:
timer.invalidate()
如果您想再点击两次开始按钮,则需要先使其失效后再安排:
@IBAction func startTimerButtonTapped(sender: UIButton) {
timer.invalidate()
time = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
}
希望这对您有帮助。
关于Swift 如何防止出现多个 NSTimer.scheduledTimerWithTimeInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36442153/