首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sender.selected =!选择的状态之间的sender.selected切换?

sender.selected =!选择的状态之间的sender.selected切换?
EN

Stack Overflow用户
提问于 2013-08-14 23:17:28
回答 4查看 1.2K关注 0票数 1

我对Objective非常陌生,很抱歉,如果这对你们中的许多人来说是非常明显的,但是我正在试图弄清楚下面的代码是如何工作的:

代码语言:javascript
复制
- (IBAction)chooseColour:(UIButton *)sender {
 sender.selected = !sender.isSelected;
}

现在,它显然在发送操作的按钮的选定状态和未选择状态之间切换,但是代码'sender.selected = !sender.isSelected‘实际上是怎么说的呢?它是否只是‘将发送者选择的属性设置为与getter相反的(即!!不是)’?因此,如果getter将当前选定的值“获取”为true,则将所选属性设置为!true,即false。或者这是我还不知道的一段方便代码?因为看起来'!sender.isSelected‘仅仅意味着不像在

代码语言:javascript
复制
if (!sender.isSelected){
statement
}

也就是说,如果未选择发件人,请执行语句。这无疑是很明显的,只是我现在有点困惑。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-14 23:20:44

您完全正确,它调用getter来获取值,并使用值的NOT (!)调用setter。它不是目标C,它是普通的C语法。

票数 2
EN

Stack Overflow用户

发布于 2013-08-14 23:23:26

它是否只是‘将发送者选择的属性设置为与getter相反的(即!!不是)’?

一点儿没错。那。

或者这是我还不知道的一段方便代码?

不,唯一的语法糖是getter/setter的点表示法,但是您已经知道了。

票数 1
EN

Stack Overflow用户

发布于 2013-08-14 23:25:09

守则的部分:

代码语言:javascript
复制
sender.selected = !sender.isSelected;

基本上颠倒了选择。它问的问题是:Is this false?所以真计算为false,false计算为true。所以这是个开关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18243921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档