iOS中的BOOL vs bool

时间:2016-04-15 18:53:40

标签: ios boolean

男孩我觉得自己很蠢。这是一个编程101问题,我无法弄清楚。

BOOL MOMisCompatible = [self.objectModel isConfiguration:nil compatibleWithStoreMetadata:existingPersistentStoreMetadata];

    NSLog(@"%d", (unsigned)MOMisCompatible); // A

    if(MOMisCompatible){
        NSLog(@"The MOM is compatible."); // B
    }
    else{
        NSLog(@"ARGH! The MOM is incompatible."); // C
    }

NSLog按预期在A处输出1或0。 但B和C都没有输出任何东西。 我通过在A处设置断点进行调试,但代码永远不会落入A和B. 我错过了什么?

1 个答案:

答案 0 :(得分:1)

也许有一些与他们的typedef相关的东西,“BOOL”是一个带签名的char,它的头是objc.h,另一方面,“bool”是带有头stdbool.h的int。因此,当您尝试将其强制转换为(无符号)时,它实际上可以正常工作