2012-02-06 232 views

回答

6

TRUE宏仅设置有C代码作为向后兼容(目标C被设计成严格的超集的C)。他们都是同样的意思。

0

in objective-c YESTRUE是一样的东西。

此外,这些可以表示为1和0,因为它们通常以核心数据的方式存储。

[NSNumber numberWithBool:YES];

+0

我建议选择一个并坚持使用它,最好是'YES',因为它使得它更明显的是你正在编写Objective-C代码而不是纯C代码,但它确实是一个惯例。 – 2012-02-06 19:31:42

+0

我相信他们在Objective-C中使用'YES'是因为他们将他们的'BOOL'变量作为问题来对应于方法命名约定。比如'BOOL isTrue = YES;' – MobileOverlord 2012-02-06 19:34:16

+0

它们像CD一样存储,因为核心数据存储的对象不是BOOL,因此它使用NSNumber存储BOOL,而类方法'numberWithBool'和实例匹配'boolValue'商店获得标量值。 – Abizern 2012-02-06 19:40:33

1

目标C中BOOL的原始成功值为YESTRUE只是模拟它的兼容性。你可以同时使用,但我强烈建议你使用最初为该语言设计的内容。这对于未来语言更新改变语言语法中的任何内容(在这种情况下不可能发生)来说非常重要,使用原始语法不会导致您修复旧代码中的任何内容。