2016-10-07 2 views
1

У меня есть пользовательский вид в листе действий с UISwitch, и я хочу захватить, когда переключатель переключается. Коммутатор показывает вверх отлично, но когда я использую addTarget для вызова функции, я получаю - использование неразрешенного идентификатора «deferSwitchToggled»Добавление селектора в UISwitch в Swift 3 дает ошибку «Использовать неразрешенный идентификатор»

let deferredFilterToggle: UISwitch = { 
    let deferredFilterToggle = UISwitch() 
    deferredFilterToggle.translatesAutoresizingMaskIntoConstraints = false 
    deferredFilterToggle.addTarget(self, action: #selector(deferSwitchToggled(_:)), for: UIControlEvents.valueChanged) 
    return deferredFilterToggle 
}() 

Функция ниже.

func deferSwitchToggled(mySwitch: UISwitch) { 
    if mySwitch.isOn { 
     showDeferred = true 
    } else { 
     showDeferred = false 
    } 
} 

Где я иду не так?

ответ

3

Для данного селектора вы указывающие ваш метод deferSwitchToggled должен предоставить неназванный аргумент:

func deferSwitchToggled(_ mySwitch: UISwitch) { 

вместо:

func deferSwitchToggled(mySwitch: UISwitch) { 
+0

Не забудьте добавить '@ objc' выше вашего функции, в противном случае возникает компиляционная ошибка. –