假设我有一个指向某个对象的指针,称为myObject
,我需要知道它是否真的指向某个东西。这段代码怎么能:
// assume MyObjectClass *myObject;
return (BOOL)myObject;
返回112 ? 我知道,我总是可以写作
return (myObject == nil);
一切都会好起来的。但是直到今天我一直假设,将任何东西显式转换为 bool总是会返回true
或false
(据我所知,0 总是被认为是false
,任何其他值都被认为是true
)并且带有它的 BOOLYES
和NO
值只是“重命名” bool . 所以基本上,我的问题是:
- 为什么返回 112?:-)
- 显式转换的结果是在 C/Objective-C 标准中的某个地方定义的,还是特定于编译器的?