错误:“不能分配给类型'Bool'的不可变表达式”?
问题描述:
我该如何解决这个问题?我是一个新的编码器。谢谢错误:“不能分配给类型'Bool'的不可变表达式”?
我得到了如下错误:
"Cannot assign to immutable expression of type '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
你得到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
}
}