Error: "Cannot assign to immutable expression of type 'Bool'"?
Error: "Cannot assign to immutable expression of type '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
到实际 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
}
}
我该如何解决这个问题?我是一个新的编码器。谢谢
我收到以下错误:
"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
到实际 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
}
}