with unrecognized sent property objc not method does argument parameters swift runtime-error nstimer

parameters - property - unrecognized selector sent to instance swift



Cómo reparar un error con un Swift NSTimer llamando a su selector (1)

Obtengo un error de tiempo de ejecución de:

2014-07-15 16: 49: 44.893 TransporterGUI [1527: 303] - [_ TtC14TransporterGUI11AppDelegate printCountdown]: selector no reconocido enviado a la instancia 0x10040e8a0

cuando utilizo el siguiente código Swift para disparar un temporizador:

@IBAction func schedule(sender : AnyObject) { var startTime = startDatePicker.dateValue.timeIntervalSinceDate(NSDate()) var endTime = endDatePicker.dateValue.timeIntervalSinceDate(startDatePicker.dateValue) var startDate = NSDate.date() let params = ["startTime": startTime, "startDate": startDate] var counter = NSTimer.scheduledTimerWithTimeInterval(1.0, target:self, selector:Selector("printCountdown"), userInfo:params, repeats:true) } func printCountdown(timer: NSTimer) { var userInfo = timer.userInfo as NSDictionary var startTime = userInfo["startTime"] as NSTimeInterval var startDate = userInfo["startDate"] as NSDate var elapsedTime: NSTimeInterval = NSDate.date().timeIntervalSinceDate(startDate) var remainingTime: NSTimeInterval = startTime - elapsedTime; if (remainingTime <= 0.0) { timer.invalidate() transferLabel.title = "No transfer scheduled" } transferLabel.title = remainingTime.description }

Por extraño que parezca, si cambio la firma de la función printCountdown para no tener parámetros, la función se llama apropiadamente, pero luego no tengo forma de acceder al objeto del temporizador que hizo la llamada.

¡Gracias por adelantado!


Su selector debe ser "printCountdown:", con un punto de terminación para indicar que el selector toma un parámetro.