这个声明是什么意思?
isChecked = isChecked ^ 1;
isChecked是一个BOOL。
“^”是异或运算,所以0翻转为1,1翻转为零。结果应与 相同isChecked = !isChecked。
它将 XOR isChecked 与 1 所以我认为 true ^ 1 = 0(false) 和 false ^1 = 1(true)
它只翻转BOOL. 不是逻辑否定的可靠方法。如果有人疯狂到将 aBOOL变量设置为某个数字,例如 5。那么做^ 1只会将值的最后一位翻转为 4,它仍然被评估为YES。
如果要逻辑否定,请改用!运算符。
^是异或运算符。
在您的示例中,它用于创建切换 -仅在之前未设置isChecked时才会设置。isChecked
这是按位异或运算符,将 0 更改为 1,将 1 更改为 0。在这里查看所有操作员。
“^”称为异或或异或运算。在这种情况下,它将布尔值从真变为假,反之亦然。
要了解更多信息,请查看此链接