说明:Ojbective-C中把BOOL定义成无符号字符型,不要直接把整形转换成BOOL。常见的错误 包括将数组的大小、指针值及位运算的结果直接转换成BOOL ,取决于整型结果的最后一个字节,很可能会产生一个NO值。当转 换整形至BOOL时,使用三目操作符来返回YES或者NO。(译者 注:读者 可以试一下任意的256的整数的转换结果,如256、512 ...) 示例:错误的用法: - (BOOL)isBold {return [self fontTraits] & NSFontBoldTrait;} - (BOOL)isValid {return [self stringValue]; } 正确的用法:• (BOOL)isBold { return ([self fontTraits] & NSFontBoldTrait) ? YES : NO; } - (BOOL)isValid {return [self stringValue] != nil;} - (BOOL)isEnabled {return [self isValid] && [self isBold]; }
网友评论