Wie kann ich das Zeitintervall auf einem NSTimer ändern?Swift NSTimer dynamisch wechselndes Intervall
var difficulty: Double = 1.0
override func viewDidLoad() {
super.viewDidLoad()
_ = NSTimer.scheduledTimerWithTimeInterval(difficulty, target: self, selector: #selector(hideAllBtns), userInfo: nil, repeats: true)
}
Ich betreibe eine switch-Anweisung, die jedes Mal von hideallbuttons aufgerufen wird und dass aktualisiert dann die Schwierigkeit.
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)
}
}
jedoch NSTimer bei 1,0s Feuer weiterhin Ich nehme es eine Kopie beim ersten Durchlauf erzeugt und hält sich an diesem Wert, habe ich versucht, eine Variable in der Timer-Aufruf zu schaffen, aber das funktioniert nicht.
Gibt es eine einfache Möglichkeit, die Rate dynamisch einzustellen, mit der der Timer ausgelöst wird?
Dies ist nur ein Übungsprojekt, da ich noch lerne, also verstehe ich, dass es wahrscheinlich einen viel besseren Weg gibt zu strukturieren, was ich versuche zu tun. Ich denke, dass ein dynamisch einstellbarer Timer für die zukünftige Verwendung nützlich wäre.
Ihr 'NSTimer' ist auf Wiederholung gesetzt: true. Also wird es nur 1 Sekunde wiederholen. Sie müssen die Dauer basierend auf dem Schwierigkeitsgrad festlegen und wiederholen: false. Sie sollten eine Methode aufrufen, um den Timer zu starten und den Timer im 'hideAllBtns'-Reset (z. B. Start) basierend auf dem Schwierigkeitsgrad neu starten. In https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097-CH14-ID259 erfahren Sie, wie Sie Getter und Setter erstellen – Asdrubal
"Dies ist nur ein Übungsprojekt" Gute Gelegenheit, das Suchen zu üben, bevor man fragt. – matt