将值更改为与感叹号Swift相反

时间:2017-08-22 12:05:11

标签: swift

我想要bool变量 - isChecked。

我想要的是,为那个变量设置相反的值:

(viewModel.arrValues[row] as! TestItem).isChecked = ((viewModel.arrValues[row] as? TestItem)?.isChecked)!

逻辑很简单!标记假设呈现相反的价值。但上面的代码不起作用。为什么呢?

2 个答案:

答案 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)