Swift3 在Swift 3中向UISwitch添加一个选择器会得到';使用未解析标识符';错误

Swift3 在Swift 3中向UISwitch添加一个选择器会得到';使用未解析标识符';错误,swift3,Swift3,我在带有UISwitch的actionsheet中有一个自定义视图,我希望在切换开关时捕获该视图。开关显示得很好,但是当我使用addTarget调用函数时,我得到了-use未解析标识符'deferSwitchToggled' let deferredFilterToggle: UISwitch = { let deferredFilterToggle = UISwitch() deferredFilterToggle.translatesAutoresizingMaskIntoC

我在带有UISwitch的actionsheet中有一个自定义视图,我希望在切换开关时捕获该视图。开关显示得很好,但是当我使用addTarget调用函数时,我得到了-use未解析标识符'deferSwitchToggled'

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

哪里出错了?

对于您指定的给定选择器,您的
延迟切换的
方法需要提供一个未命名的参数:

func deferSwitchToggled(_ mySwitch: UISwitch) {
而不是:

func deferSwitchToggled(mySwitch: UISwitch) {

不要忘记在函数上方添加
@objc
,否则会发生编译错误。