ios - scheduled - NSTimer-cómo retrasar en Swift
timer.scheduledtimer swift 4 example (3)
¿Qué hay de usar Grand Central Dispatch?
Valfer te ha mostrado cómo
Tengo un problema con retrasar el movimiento de la computadora en un juego.
He encontrado algunas soluciones pero no funcionan en mi caso, por ejemplo
var delay = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: nil, userInfo: nil, repeats: false)
Traté de usar esto con la función de fire
pero también para ningún efecto.
¿Qué otras posibilidades hay?
En veloz podemos retrasar utilizando Dispatch_after.
SWift 3.0: -
DispatchQueue.main.asyncAfter(deadline: .now()+4.0) {
alert.dismiss(animated: true, completion: nil)
}
Swift 3
Con GCD:
let delayInSeconds = 4.0
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) {
// here code perfomed with delay
}
o con un temporizador:
func myPerformeCode() {
// here code to perform
}
let myTimer : Timer = Timer.scheduledTimer(timeInterval: 4, target: self, selector: #selector(self.myPerformeCode), userInfo: nil, repeats: false)
Swift 2
Con GCD:
let seconds = 4.0
let delay = seconds * Double(NSEC_PER_SEC) // nanoseconds per seconds
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
// here code perfomed with delay
})
o con un temporizador:
func myPerformeCode(timer : NSTimer) {
// here code to perform
}
let myTimer : NSTimer = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: Selector("myPerformeCode:"), userInfo: nil, repeats: false)