iOS Objective-C中true和YES之间的区别是什么

时间:2015-01-21 17:48:01

标签: ios objective-c

我已经读过这两个是相同的,但是如果我使用true/false而不是YES/NO,我的代码就不起作用了。例如,如果我

BOOL matchFound=false;
//...
//logic to change value of matchFound to `true` goes here
//...
if(!matchFound) NSLog(@"I did not find a match");

以上操作无效。但如果我改为使用YES / NO,它就可以了。那是为什么?

1 个答案:

答案 0 :(得分:6)

这是因为YES / NO实际上不是布尔值,而是它们是有符号的char类型。这是旧C天的遗物,没有布尔类型。

下面链接的文章将详细解释,但一般情况下,在iOS中处理BOOL值时,应始终使用YES / NO。

http://iosdevelopertips.com/objective-c/of-bool-and-yes.html

希望这有帮助!