Xcode 错误:";无法分配给类型为';布尔'&引用;?
我该如何解决这个问题?我是个新的编码员。多谢各位 我得到以下错误: “无法分配给'Bool'类型的不可变表达式” 当我尝试将“isSelected”设置为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
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
}
}