真的很简单的问题;这些值之间是否存在差异(BOOL 和 bool 之间是否存在差异)?一位同事提到他们在 Objective-C 中评估不同的东西,但是当我查看他们各自 .h 文件中的 typedef 时,YES/TRUE/true 都被定义为 1
和 NO/FALSE/false 都定义为 0
。真的有区别吗?
最佳答案
我相信 bool
和 BOOL
之间存在 区别,请查看此网页了解原因:
http://iosdevelopertips.com/objective-c/of-bool-and-yes.html
因为 BOOL
是 unsigned char
而不是原始类型,所以 BOOL
类型的变量可以包含 YES 和
NO
.
考虑这段代码:
BOOL b = 42;
if (b) {
printf("b is not NO!\n");
}
if (b != YES) {
printf("b is not YES!\n");
}
输出是:
b is not NO!
b is not YES!
对于大多数人来说,这是一个不必要的问题,但如果你真的想要一个 boolean 值,最好使用 bool
。我应该补充一点:iOS SDK 通常在其接口(interface)定义上使用 BOOL
,因此这是坚持使用 BOOL
的参数。
关于objective-c - 在objective-c中YES/NO,TRUE/FALSE和true/false之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615702/
相关文章:
iphone - 在 UIViewController 上显示 clearColor UIViewC
objective-c - Objective-C 中的 "unrecognized selecto
objective-c - 每个核心数据关系都必须有一个逆关系吗?
objective-c - NSLog iPhone中Objective-C的方法名
objective-c - Xcode 5 : Code signing entitlement e
ios - 从 UITableView 单元格内的 url 异步加载图像 - 滚动时图像更改为错误图