我已经定义了一个变量,它给了我如下的输出。比较#define给出不正确的结果
iPhone 4 >> 4
iPhone 5 >> 5
iPad >> 999
使用的功能如下。
#define iPhone4Or5 [[UIScreen mainScreen] bounds].size.height == 568 ? 5 :
([[UIScreen mainScreen] bounds].size.height == 480 ? 4 : 999)
当我的NSLog变量iPhone4Or5
,它给了我正确的结果为iPhone 5,但是当我做比较,它给了我错误的结果...
if (iPhone4Or5==999) {
NSLog("Its iPad version");
} else {
NSLog("Its iPhone version");
}
当我与iPhone 5上面运行,或以上,它总是给我NSLog作为它的iPad版本。
任何想法为什么我得到错误的比较结果?
我在prefix.pch
注定义变量:
如果我执行NSLog("iPhone4Or5==%d", iPhone4Or5)
,我得到的输出iPhone4Or5==5
当设备/模拟器处于横向模式时,您会做什么?高度不是别的吗?即纵向模式的宽度。 – matsr
不要在这里使用宏。你使用它们的方式是反模式。 ;) – CouchDeveloper
如果你坚持使用宏,请确保使用足够的括号来避免操作符优先级问题和其他陷阱。 –