Я пытаюсь использовать NSTimer для запуска функции на определенном интервале, но каждый раз, когда он запускает программу аварии с исключением:Непризнанный селектор, отправленный классу при использовании NSTimer в Swift; NSInvalidArgumentException
+[Project.Class updateLabel]: unrecognized selector sent to class...
Terminating app due to uncaught exception "NSInvalidArgumentException".
Код следующим образом:
class SecondViewController: UIViewController {
// MARK: Properties
override func viewDidLoad() {
super.viewDidLoad()
do {
try updateLabel()
try startTimer()
}
catch{
self.showAlert()
}
}
@IBOutlet weak var i2cLabel: UILabel!
// MARK: Actions
func startTimer() throws {
_ = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("updateLabel"), userInfo: nil, repeats: true)
}
func showAlert() {
}
func updateLabel() throws {
}
}
Если я прокомментирую строку NSTimer, программа компилируется и работает просто отлично.
Обратите внимание, что функция updateLabel(), селекторная функция, не принимает аргументов, поэтому ее следует использовать как селектор без суффикса двоеточия. Это кажется уникальным для этой проблемы.
Отредактировано, чтобы объяснить, как эта проблема уникальна. –