Нераспознанный селектор отправлен на экземпляр 0x7f90f1f04180

Я новичок, чтобы быстро. Я использую XCode версии 8 бета 4. У меня появляется ошибка, когда я прокручиваю свой Date Picker. Я прочитал очень похожую проблему, но ответ там не решает мою проблему. Ниже мой код:

func textFieldDidBeginEditing(_ textField: UITextField) {
    let datePicker = UIDatePicker()
    textField.inputView = datePicker
    datePicker.addTarget(self, action: Selector("datePickerChanged:"), for: .valueChanged)        
}

func datePickerChanged(sender: UIDatePicker){
    let formatter = DateFormatter()
    formatter.dateStyle = .long
    dateLog.text = formatter.string(from: sender.date)
}

когда я нажимаю на мое текстовое поле UIDatePicker показывает просто отлично, но когда я начинаю прокручивать даты, это дает мне следующую ошибку:

*** Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: '-[MyApp.ViewController datePickerChanged:]: нераспознанный селектор, отправленный экземпляру 0x7f90f1f04180'

2 ответа

Решение

Selector(String) устарела. Вы должны начать использовать новый синтаксис #selector,

Также двоеточие в конце не нужно.

Итак, ваш код должен выглядеть так:

datePicker.addTarget(self, action: #selector(datePickerChanged), 
    for: .valueChanged)
  1. изменить Selector в #selector
  2. менять for в forControlEvents
  3. менять .valueChanged в .ValueChanged

    datePicker.addTarget(self, action: #selector(yourClass.datePickerChanged), forControlEvents: .ValueChanged) 
    
Другие вопросы по тегам