如何更改NSTimer的时间间隔?Swift NSTimer动态更改时间间隔
var difficulty: Double = 1.0
override func viewDidLoad() {
super.viewDidLoad()
_ = NSTimer.scheduledTimerWithTimeInterval(difficulty, target: self, selector: #selector(hideAllBtns), userInfo: nil, repeats: true)
}
我运行一个switch语句,每次从hideallbuttons被调用,然后更新难度。
func getDifficulty (score : Double) -> Double {
switch score {
case 0...100: return(1.0)
case 100...200: return (0.8)
case 200...300: return (0.5)
case 300...400: return (0.2)
default: return (1.0)
}
}
不过的NSTimer继续开火1.0S我相信它会创建在第一次运行,坚持该值的副本,我试图创建的计时器调用一个变量,但不起作用。
是否有一种简单的方法来动态调整定时器触发的速率?
这只是一个实践项目,因为我仍在学习,所以我明白可能有更好的方法来构建我正在尝试做的事情。我认为动态调整计时器对未来的使用会很有用。
你的'NSTimer'被设置为repeat:true。所以它会重复1秒。您需要根据难度设置持续时间,然后重复:false。你应该调用一个方法来启动定时器,并在'hideAllBtns'中根据难度重新启动定时器。另请参阅如何在swift中创建getter和setter。https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097-CH14-ID259 – Asdrubal
“这只是一个练习项目”在询问之前练习搜索的好机会。 – matt