Как изменить временной интервал на 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,0 сек, я предполагаю, что это создает копию по первому ходу и прилипает к этому значению, я попытался создать переменную в вызове таймера, но это не работает.
Есть ли простой способ динамического изменения скорости, с которой срабатывает таймер?
Это всего лишь практический проект, так как я все еще участвую, поэтому я понимаю, что, вероятно, гораздо лучший способ структурировать то, что я пытаюсь сделать. Я думаю, что динамически настраиваемый таймер будет полезен для будущего использования.
Ваш 'NSTimer' настроен на повторение: true. Таким образом, он просто повторит 1 секунду. Вам нужно установить продолжительность на основе сложности и повторить: false. Вы должны вызвать метод, чтобы запустить таймер, а в справке 'hideAllBtns' (т.е. запустить) таймер снова на основе сложности. Также проверьте, как создавать геттеры и сеттеры в быстром https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097-CH14-ID259 – Asdrubal
«Это всего лишь практический проект». Хороший шанс заняться поиском, прежде чем спрашивать. – matt