Я пытаюсь сохранить NSTimer в модели своего приложения и обновить время в файле контроллера View. Для этого я создал эти два метода:Swift: использование селекторов с несколькими аргументами
func startTimer(labelToUpdate : UILabel) {
timerGoing = true
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "decTimeByOne:labelToUpdate:", userInfo: labelToUpdate, repeats: true)
}
func decTimeByOne(labelToUpdate : UILabel) {
if timerGoing {
if decreasingTime > 0 {
decreasingTime--;
labelToUpdate.text = "\(decreasingTime)"
}
else {
timerGoing = false
timer.invalidate()
}
}
}
я получаю исключение во время выполнения (я считаю) в консоли, что есть «Непризнанный селектор». После некоторого исследования у меня сложилось впечатление, что это был синтаксис, используемый в Swift для вызова нескольких методов аргументов в селекторах: selector: «methodName: argumentName:», userInfo: argumentPassedIn,
В конце концов, я хотел бы сохранить таймер, связанный с объектом моей модели, и просто обновить это время и отобразить его в представлении приложений. Правильно ли это происходит?
Ваша функция не является функцией с несколькими аргументами. Правильный селектор - это просто «decTimeByOne:» – ad121