我已经读过这两个是相同的,但是如果我使用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,它就可以了。那是为什么?
答案 0 :(得分:6)
这是因为YES / NO实际上不是布尔值,而是它们是有符号的char类型。这是旧C天的遗物,没有布尔类型。
下面链接的文章将详细解释,但一般情况下,在iOS中处理BOOL值时,应始终使用YES / NO。
http://iosdevelopertips.com/objective-c/of-bool-and-yes.html
希望这有帮助!