2016-11-30 15 views
2

これを修正するにはどうすればよいですか?私は新しいコーダーです。あなたが送信者を変換するときので、あなたはこのエラーを取得しているエラー: "タイプ 'Bool'の不変式に代入できませんか?

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

私はfalseに「isSelected」を設定しようとすると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 

    } 
} 

答えて

2

:私は次のエラーを取得する

ありがとうAnyObjectimmutableタイプのオブジェクトがあるため、そのプロパティを更新することはできません。問題を解決する最善の方法は、送信者の宣言をAnyからacに変更することですtual UIControlはボタンであればUIButtonを意味します。あなたはまだそれが属していることを実際UIControlへの送信者を変換Anyを使用したい場合は

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

@IBAction func onFilter(_ sender: Any) { 
    if sender is UIButton { 
     let btn = sender as! UIButton 
     hideSecondaryMenu() 
     btn.isSelected = !btn.isSelected 
    } 
}  
関連する問題