我对Objective非常陌生,很抱歉,如果这对你们中的许多人来说是非常明显的,但是我正在试图弄清楚下面的代码是如何工作的:
- (IBAction)chooseColour:(UIButton *)sender {
sender.selected = !sender.isSelected;
}现在,它显然在发送操作的按钮的选定状态和未选择状态之间切换,但是代码'sender.selected = !sender.isSelected‘实际上是怎么说的呢?它是否只是‘将发送者选择的属性设置为与getter相反的(即!!不是)’?因此,如果getter将当前选定的值“获取”为true,则将所选属性设置为!true,即false。或者这是我还不知道的一段方便代码?因为看起来'!sender.isSelected‘仅仅意味着不像在
if (!sender.isSelected){
statement
}也就是说,如果未选择发件人,请执行语句。这无疑是很明显的,只是我现在有点困惑。
谢谢!
发布于 2013-08-14 23:20:44
您完全正确,它调用getter来获取值,并使用值的NOT (!)调用setter。它不是目标C,它是普通的C语法。
发布于 2013-08-14 23:23:26
它是否只是‘将发送者选择的属性设置为与getter相反的(即!!不是)’?
一点儿没错。那。
或者这是我还不知道的一段方便代码?
不,唯一的语法糖是getter/setter的点表示法,但是您已经知道了。
发布于 2013-08-14 23:25:09
守则的部分:
sender.selected = !sender.isSelected;基本上颠倒了选择。它问的问题是:Is this false?所以真计算为false,false计算为true。所以这是个开关。
https://stackoverflow.com/questions/18243921
复制相似问题