我的代码是这样的:
NSString *myString = [self fetchSomeStringWhichMyOrMayNotBeNil];
if (myString) {
NSLog(@"yay, my string is not nil!);
}
然后我(不小心)改为
BOOL myStringIsNotNil = myString;
if (myStringIsNotNil) {
NSLog(@"yay, my string is not nil!);
}
这并没有在64位设备上发出警告(-Wint-conversion
),但它在armv7(32位)上发出警告。我发现相关的差异是BOOL
在32位上定义为signed char
,在64位上定义为bool
。
但是为什么它不会在64位上发出警告 - 更重要的是:我怎样才能再次发出警告?