《编写高质量代码:改善Objective-C程序的61个建议》——建议16:明智而审慎地使用BOOL类型
本节书摘来自华章出版社《编写高质量代码:改善Objective-C程序的61个建议》一 书中的第2章,作者:刘一道,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
建议16:明智而审慎地使用BOOL类型
整型转换为BOOL 型时,要小心,不要直接和YES作比较。
BOOL 在Objective-C里被定义为unsigned char,这意味着它不仅仅只有YES(1)和NO(0)两个值。不要直接把整型强制转换为BOOL 型。常见的错误发生在把数组大小、指针的值或者逻辑位运算的结果赋值到BOOL型中,而这样就导致BOOL 值仅取决于之前整型值的最后一个字节,有可能出现整型值不为0但被转为NO的情况。因此把整型转为BOOL型的时候请使用三元(Ternery)操作符,保证返回YES 或NO 值。
在BOOL、_BOOL 及bool(见C+