çalışmaz:Zamanlayıcı Bu kodu vardır Swift 3.0 ile oyun alanında çalışma Swift 3.0 oyun alanı
struct Test {
func run() {
var timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { timer in
print("pop")
}
}
}
let test = Test()
test.run()
Ama hiçbir şey teselli etmeye yazdırıyor. Ben How can I use NSTimer in Swift? okudum ve bu çalıştı yüzden çevrimiçi cevapları ve öğreticiler gördüğüm zamanlayıcı kullanımının çoğu seçici içerir:
class Test {
func run() {
var timer = Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(self.peep), userInfo: nil, repeats: false)
}
@objc func peep() {
print("peep")
}
}
let test = Test()
test.run()
Hala hiçbir şey konsola yazdırmak gibi görünüyor. timer.fire()
eklerseniz, konsol yazdırılır, ancak açıkçası bu amacı yener. Zamanlayıcının çalışmasını sağlamak için neye ihtiyacım var?
DÜZENLEME: hile yaptı benim Test
yapı için run
yöntemi denilen sonra
Yani CFRunLoopRun()
ekledi. Çok teşekkür ederim, özellikle de @AkshayYaduvanshi (kimin yorumunu bana CFRunLoopRun()
işaret etti) ve @JoshCaswell (cevabı kimin zamanlayıcı sadece run run ile çalıştığı gerçeği getirdi).
"Oyun alanında çalışıyor" Ve sorun bu. – matt
Bunu kontrol edin [link] (http://stackoverflow.com/questions/29232334/using-nstimer-in-swift-playground) –