0

在 Objective-C 中,我可以用 YES 或 TRUE 初始化 BOOL 变量。是否有一个原因?

BOOL test = false;
BOOL test = NO;

他们是一样的吗?

4

2 回答 2

3

true并且false来自c/c++

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

YES并且NO来自Objective-C

#if __has_feature(objc_bool)
#define YES             __objc_yes
#define NO              __objc_no
#else
#define YES             ((BOOL)1)
#define NO              ((BOOL)0)
#endif
于 2013-03-05T17:07:43.043 回答
1

是的。false是从 C 中遗留下来的,NO在惯用的 iOS 代码和库中更为普遍。

于 2013-03-05T17:08:06.953 回答