Xcode 错误:";无法分配给类型为';布尔'&引用;?

Xcode 错误:";无法分配给类型为';布尔'&引用;?,xcode,swift3,immutability,sender,Xcode,Swift3,Immutability,Sender,我该如何解决这个问题?我是个新的编码员。多谢各位 我得到以下错误: “无法分配给'Bool'类型的不可变表达式” 当我尝试将“isSelected”设置为false和true @IBAction func onFilter(_ sender: Any) { if ((sender as AnyObject).isSelected == true) { hideSecondaryMenu() (sender as AnyObject).isSelecte

我该如何解决这个问题?我是个新的编码员。多谢各位

我得到以下错误:

“无法分配给'Bool'类型的不可变表达式”

当我尝试将“isSelected”设置为
false
true

@IBAction func onFilter(_ sender: Any) {

    if ((sender as AnyObject).isSelected == true) {

        hideSecondaryMenu()
        (sender as AnyObject).isSelected = false

    } else {

        showSecondaryMenu()
        (sender as AnyObject).isSelected = true

    }
}

出现此错误的原因是,当您将发件人转换为
AnyObject
时,您得到的是
不可变的
类型对象,因此无法更新其属性,解决问题的最佳选择是将发件人声明从
Any
更改为实际
UIControl
表示如果是按钮,则为
ui按钮

@IBAction func onFilter(_ sender: UIButton) {
    hideSecondaryMenu()
    sender.isSelected = !sender.isSelected
}
如果您仍想使用
任何
,则将发送者转换为其所属的实际
UIControl

@IBAction func onFilter(_ sender: Any) {
    if sender is UIButton {
         let btn = sender as! UIButton
         hideSecondaryMenu()
         btn.isSelected = !btn.isSelected
    }
}