![]() |
1
10
还有一个:
这有点脆弱-它会破坏遗留的C代码,这意味着任何非零整数的计算结果都是真的。不过,苹果的框架代码也是如此——我在Cocoa中遇到过这样的情况,当一个非零、非一的int作为BOOL传递时,不会产生与传递YES相同的效果。
但是,它不依赖于YES的位模式—只依赖于NO为0。考虑到C将整数解释为逻辑值的方式,这基本上是给定的。而且,它不假定BOOL的实际数据类型(在Cocoa上是
Cocoa上YES的位模式是1。但这不是一个普遍的惯例。在一些没有内置布尔数据类型的平台上,用作逻辑TRUE的整数常量是
|
![]() |
2
10
|
![]() |
3
9
|
![]() |
4
6
为
然后你可以做:
|
![]() |
5
2
编辑:显然已经有人发布了。我想我应该说我从来没有在代码中使用过这个 |
![]() |
6
0
你有一个可爱的答案集中在翻转一个是一个否或反之亦然,但
好吧,一些答案。我瞎了。 也就是说,你有:
这闻起来像是潜在的封装违规。特别是(假设这是一个模型层),这意味着对象的子图的连通性被公开地暴露出来——有效地平坦化到——路径的入口点;无论什么
通常,您不会沿着关键路径深入到模型层来编辑Cocoa绑定层之外的状态(即使这样也有点脆弱)。 有时候,这样漫长的道路是有道理的。在这种情况下,我会留下您上面的ber-verbose表单作为一个可视化的指示,表明封装正在被有目的地分解。 |
![]() |
Noah H · 如何通过终端或Swift禁用三指轻拍手势? 6 年前 |
![]() |
Dmitry Serov · 货币数字格式-数字为整数时省略分数部分 6 年前 |
![]() |
Duny · ObjC日期始终返回2017年12月25日 6 年前 |
![]() |
Jan Kaiser · NSButton不调用其操作 6 年前 |