错误:“不能分配给类型'Bool'的不可变表达式”?

问题描述:

我该如何解决这个问题?我是一个新的编码器。谢谢错误:“不能分配给类型'Bool'的不可变表达式”?

我得到了如下错误:

"Cannot assign to immutable expression of type 'Bool'"

当我尝试了“isSelected”设置为falsetrue

@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你得到immutable类型的对象,所以你不能更新它的属性,解决你的问题的最佳选择是将您的发件人声明从Any更改为ac tual UIControl意味着如果它是按钮然后UIButton

@IBAction func onFilter(_ sender: UIButton) { 
    hideSecondaryMenu() 
    sender.isSelected = !sender.isSelected 
} 

如果你想仍然使用Any然后转换寄件人实际UIControl,这是属于。

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