【发布时间】:2011-03-19 19:15:41
【问题描述】:
如果 BOOL 有一个不错的短名称,那么编写起来很容易:
myBOOL = !myBOOL;
但是如果 BOOL 有一个长名称怎么办?
objectWithLongishName.memberWithLongishName.submember.myBOOL = !(objectWithLongishName.memberWithLongishName.submember.myBOOL);
。 . .看起来不那么漂亮。
我想知道是否有一种简单的方法来切换 BOOL 而无需输入其名称两次?
【问题讨论】:
-
只是好奇,你能把
bool乘以 Objective-C 中的数字吗?你能做类似objectWithLongishName.memberWithLongishName.submember.myBOOL*=-1;的事情吗?这似乎是一个非常非常不好的方法,但我现在只是想知道它是否会起作用...... -
@frust:除了其他问题,这在算术上是如何工作的?
0 * -1 = 0. -
@Georg Fritzsche:哈哈哈!好的,好点。我以为我在 some 哪里见过这个技巧,但我不记得在哪里(尽管我知道它不是 Objective-C)。
-
你可以想象
myBool ^= 1...但我不会。 -
@William:你真的应该指定一个平台。 BOOL 数据类型和 YES/NO 常量不是 Objective C 的一部分,它们是在 Cocoa 头文件中定义的。 Objective C 和 C 一样,没有布尔数据类型。
标签: objective-c cocoa boolean