私はbool変数が必要です - isChecked。感嘆符で反対に値を変更Swift
ある何私がしたい、そのようなその変数に反対の値を設定します
(viewModel.arrValues[row] as! TestItem).isChecked = ((viewModel.arrValues[row] as? TestItem)?.isChecked)!
ロジックは簡単です!マークは反対の値を提示すると仮定する。しかし、上記のコードは動作しません。どうして?
私はbool変数が必要です - isChecked。感嘆符で反対に値を変更Swift
ある何私がしたい、そのようなその変数に反対の値を設定します
(viewModel.arrValues[row] as! TestItem).isChecked = ((viewModel.arrValues[row] as? TestItem)?.isChecked)!
ロジックは簡単です!マークは反対の値を提示すると仮定する。しかし、上記のコードは動作しません。どうして?
の後に感嘆符を付けると、可変マークがアンラッピングを強制します。一般に、式の後に感嘆符を付けることは、何かを強制することを意味します(as!
で強制的にキャスティングするか、オプションのアンラッピングを強制するなど)。
の前にを入れてブール式を否定する必要があります。
(viewModel.arrValues[row] as! TestItem).isChecked = !((viewModel.arrValues[row] as? TestItem)?.isChecked)
後に等しい
(viewModel.arrValues[row] as! TestItem).isChecked = !((viewModel.arrValues[row] as? TestItem)?.isChecked)
を追加してみてください '!'( '!X 'ではなく、X'より! ')前に行きます。 – Thilo
「動作しません」と定義します。そして、反対の値の前に '!'を置くとどうなりますか? –