男孩我觉得自己很蠢。这是一个编程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. 我错过了什么?
答案 0 :(得分:1)
也许有一些与他们的typedef相关的东西,“BOOL”是一个带签名的char,它的头是objc.h,另一方面,“bool”是带有头stdbool.h的int。因此,当您尝试将其强制转换为(无符号)时,它实际上可以正常工作