2013-03-05 130 views
0

在Objective-C中,我可以用YES或TRUE初始化BOOL變量。是否有一個原因?iOS,布爾變量

BOOL test = false; 
BOOL test = NO; 

他們是否一樣?

+2

請參閱http://stackoverflow.com/questions/615702/is-there-a-difference-between-yes-no-true-false-and-true-false-in-objective-c – Vinzzz 2013-03-05 17:06:26

+0

請參閱http:/ /stackoverflow.com/questions/6420987/why-does-objective-c-use-yes-no-macro-convention-instead-of-true-false – Kaiser 2013-03-05 17:06:49

+2

@Vinzzz不要只是發佈一個鏈接,投票結束作爲一個重複。 – rmaddy 2013-03-05 17:08:41

回答

3

truefalse來自C/C++

#ifndef __cplusplus 
#define bool _Bool 
#define true 1 
#define false 0 

YESNO是從目標C

#if __has_feature(objc_bool) 
#define YES    __objc_yes 
#define NO    __objc_no 
#else 
#define YES    ((BOOL)1) 
#define NO    ((BOOL)0) 
#endif 
1

是。 false從C中遺留下來,NO在慣用的iOS代碼和庫中更普遍。