2016-09-04 2 views
0

Я новичок в быстром. Я использую xcode версию 8 бета 4. У меня есть ошибка всякий раз, когда я просматриваю свой выбор даты. Я прочитал very similar problem, но ответ там не фиксирует мою проблему. Ниже мой код:непризнанный селектор отправлен в пример 0x7f90f1f04180

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) 
} 

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

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyApp.ViewController datePickerChanged:]: unrecognized selector sent to instance 0x7f90f1f04180'

+1

ваш селектор должен быть записан как этот '#selector (datePickerChanged (_ :))' –

+1

и метод 'Func datePickerChanged (_ отправитель: UIDatePicker) {' –

+0

@LeoDabus Спасибо! это сработало! Я изменил его на: datePicker.addTarget (self, action: #selector (datePickerChanged (_ :)), для: .valueChanged) ' – iceman

ответ

4

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

Кроме того, толстой кишки в конце не требуется.

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

datePicker.addTarget(self, action: #selector(datePickerChanged), 
    for: .valueChanged) 
+0

@vadian Я знаю. Я попробовал код OPs, и он не разбился. Но, тем не менее, неизменяемый синтаксис всегда должен использоваться imo. – Sweeper

+0

Спасибо! Это сработало! Я также сделал это так, и он также работал: 'datePicker.addTarget (self, action: #selector (datePickerChanged (_ :)), для: .valueChanged)', но мне также пришлось изменить мою функцию datePickerChanged: 'func datePickerChanged (_ отправитель: UIDatePicker) ' – iceman

-1
  1. Изменение Selector к #selector
  2. изменение for в forControlEvents
  3. изменение .valueChanged в .ValueChanged

    datePicker.addTarget(self, action: #selector(yourClass.datePickerChanged), forControlEvents: .ValueChanged) 
    
+0

Возможно, он использует Swift 3 –

Смежные вопросы