sto ottenendo un errore di runtime di:Come risolvere l'errore con una Swift NSTimer chiamando il suo selettore
2014/07/15 16: 49: 44,893 TransporterGUI [1527: 303] - [_ TtC14TransporterGUI11AppDelegate printCountdown]: non riconosciuta selettore inviato a un'istanza 0x10040e8a0
quando utilizzare il seguente codice Swift per sparare un timer:
@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
}
Stranamente, se cambio la firma della funzione printCountdown avere alcun parametro, la funzione viene chiamata in modo appropriato , ma poi non ho modo di acce ssing the timer object che ha effettuato la chiamata.
Grazie in anticipo!
La modifica del selettore è il punto dell'errore. La forma completa di printCountdown è 'printCountdown:'. La stringa del selettore non è corretta. – CodaFi