我想要bool变量 - isChecked。
我想要的是,为那个变量设置相反的值:
(viewModel.arrValues[row] as! TestItem).isChecked = ((viewModel.arrValues[row] as? TestItem)?.isChecked)!
逻辑很简单!标记假设呈现相反的价值。但上面的代码不起作用。为什么呢?
答案 0 :(得分:3)
因为在之后添加感叹号标记强制解包。通常,在表达式后面加上感叹号意味着强制某些东西(强制使用as!
或强制展开选项等)。
你必须在前加上值来否定一个布尔表达式。
(viewModel.arrValues[row] as! TestItem).isChecked = !((viewModel.arrValues[row] as? TestItem)?.isChecked)
答案 1 :(得分:1)
尝试添加等于
之后(viewModel.arrValues[row] as! TestItem).isChecked = !((viewModel.arrValues[row] as? TestItem)?.isChecked)