#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)
我使用上面的方法来检查用户是否使用 iPhone 5,但我真的不明白它是如何工作的。
常识告诉我,如果用户屏幕边界是 X - 568 = 0,则用户正在使用 iPhone 5。但在上面的语句中,0 将是 NO BOOL,因此不明白它如何返回 YES。
#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)
我使用上面的方法来检查用户是否使用 iPhone 5,但我真的不明白它是如何工作的。
常识告诉我,如果用户屏幕边界是 X - 568 = 0,则用户正在使用 iPhone 5。但在上面的语句中,0 将是 NO BOOL,因此不明白它如何返回 YES。
(0 ? "yes" : "no")
结果"no"
。
(0 ? "no" : "yes")
结果"yes"
。
后面的?
表达式是布尔表达式为真时的结果。后面的:
表达式是布尔表达式为假时的结果。
它的意思是 :
if([[UIScreen mainScreen] bounds].size.height-568)
return NO;
return YES;
IPHONE5的高度是568,所以[[UIScreen mainScreen] bounds].size.height-568 = 0
,0
表示NO
,其他表示YES
这很简单,
你已经解决了逻辑,是的,它会说零,在零上它会返回YES。
因为在编程中零意味着错误!所以 False 将返回“YES”
而非零意味着 TRUE !所以 TRUE 将返回“NO”
这里使用三元运算符,它将以上述方式工作。
首先,一些这样的语句:“isTrue?NO:YES”,表示当“?”之前的语句为真时,整个语句(isTrue?NO:YES)的值为“NO”,否则值为"YES";这里,这个语句的值([[UIScreen mainScreen] bounds].size.height-568)可以是零或者非零,所以当[[UIScreen mainScreen] bounds].size.height等于568时,上面的语句是零,零表示假,所以它返回“YES”。