为什么Objective-C使用YES和NO而不是1和0?

Mic*_*ael 24 objective-c

Objective-C使用YES和NO代替1和0是否有任何技术原因,或者仅仅是为了使其更具可读性?

Aar*_*paa 53

使其更具可读性一个技术原因.


Rev*_*316 26

typedef signed char        BOOL; 
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C" 
// even if -funsigned-char is used.
#define OBJC_BOOL_DEFINED


#define YES             (BOOL)1
#define NO              (BOOL)0
Run Code Online (Sandbox Code Playgroud)

(以供参考)

[button setAttr:YES];
Run Code Online (Sandbox Code Playgroud)

听起来更好恕我直言......

[button setAttr:TRUE];
Run Code Online (Sandbox Code Playgroud)


Mel*_*Mel 23

C(Objective-C所基于的)在C99之前没有布尔类型.

Objective-C是在80年代创建的,并定义了它自己的布尔类型.

  • `Objective-C`是_so 80的chic_. (10认同)

Ste*_*ont 21

因为程序员意味着 ,而不是10.


rfu*_*duk 8

同样的原因,大多数语言使用truefalse...如果你喜欢,与任何其它语言的您可以使用1和0.

真的,如果你考虑一下,我们谈的是:

#define YES 1
#define NO  0
Run Code Online (Sandbox Code Playgroud)

它的阅读效果更好.