如何在运行选择器功能之前清除计时器?
Posted
技术标签:
【中文标题】如何在运行选择器功能之前清除计时器?【英文标题】:How to Clear the timer before running a Selector Function? 【发布时间】:2015-02-05 19:00:43 【问题描述】:我有一个这样的计时器:
var timer = NSTimer.scheduledTimerWithTimeInterval(time, target: self, selector: Selector("finished"), userInfo: nil, repeats: false)
带有“time”的就是 NSTimeInterval 用于运行这个计时器,例如是 10.0 秒。 “完成”是一个在定时器达到 10.0 秒时运行的函数。 如果我的计时器正在运行,例如当我的计时器达到 4.0 秒时,我想清除或停止计时器或类似的东西,然后再次重新启动计时器。我怎样才能做到这一点?我已经尝试过使用:
timer.invalidate()
并再次重新创建计时器,但在 6.0 秒后仍会调用“完成”函数。 请帮忙。
【问题讨论】:
调用invalidate
就足够了。也许您创建计时器的次数比您想象的要多?发布一个演示您遇到的问题的最小代码集。
谢谢,我创建计时器的次数比我还多!
【参考方案1】:
希望对你有帮助……
class ViewController: UIViewController
var timer = NSTimer()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true)
func result()
self.elapsedTime++
self.handler(elapsedTime)
if self.elapsedTime == self.duration
self.stop()
func stop()
timer.invalidate()
【讨论】:
【参考方案2】:我发现了一个问题,我添加的计时器比我想象的要多,所以另一个计时器仍然运行并占用我的功能。
【讨论】:
以上是关于如何在运行选择器功能之前清除计时器?的主要内容,如果未能解决你的问题,请参考以下文章