如果要在每次点击"开始"按钮时重置timer.invalidate()
计时器,可以在开始新计时器之前添加startTimerButtonTapped
:
@IBAction func startTimerButtonTapped(sender: UIButton) { timer.invalidate() timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true) }
我打算用解释进行更新,但是@jcaron已经在评论中做了,所以我只是引用他的文字,不需要改变它:
每次点击"开始计时器"按钮,你都会创建一个新的计时器,同时让前一个计时器继续运行,但没有引用它(因为你已经
timer
用你刚创建的新计时器覆盖了).在创建新的之前,您需要使前一个无效.