Objective-C:将int返回BOOL方法

Zil*_*lan 5 methods integer boolean objective-c

我是Objective-C的新手,我想知道为什么这个方法编译,任何人都能解释我为什么?

谢谢

-(BOOL) isEnabled{
   return 56;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*pan 6

BOOL在Objective-C是一typedefsigned char.由于56适合该类型,因此文字的隐式转换不会int导致数据丢失.

  • Zillan,还要注意,如果它依赖于"YES"或"NO"值,这可能会破坏代码.例如`if([self isEnabled] == YES]`会失败而`if([self isEnabled])`会起作用. (3认同)
  • 你应该看看这篇文章:http://weblog.bignerdranch.com/564-bools-sharp-corners/ (3认同)