1
#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)

我使用上面的方法来检查用户是否使用 iPhone 5,但我真的不明白它是如何工作的。

常识告诉我,如果用户屏幕边界是 X - 568 = 0,则用户正在使用 iPhone 5。但在上面的语句中,0 将是 NO BOOL,因此不明白它如何返回 YES。

4

4 回答 4

2

(0 ? "yes" : "no")结果"no"

(0 ? "no" : "yes")结果"yes"

后面的?表达式是布尔表达式为真时的结果。后面的:表达式是布尔表达式为假时的结果。

于 2013-03-22T13:19:02.240 回答
2

它的意思是 :

if([[UIScreen mainScreen] bounds].size.height-568)
    return NO;
return YES;

IPHONE5的高度是568,所以[[UIScreen mainScreen] bounds].size.height-568 = 00表示NO,其他表示YES

于 2013-03-22T13:22:40.837 回答
1

这很简单,

你已经解决了逻辑,是的,它会说零,在零上它会返回YES

因为在编程中零意味着错误!所以 False 将返回“YES”

而非零意味着 TRUE !所以 TRUE 将返回“NO”

这里使用三元运算符,它将以上述方式工作。

于 2013-03-22T13:17:10.580 回答
0

首先,一些这样的语句:“isTrue?NO:YES”,表示当“?”之前的语句为真时,整个语句(isTrue?NO:YES)的值为“NO”,否则值为"YES";这里,这个语句的值([[UIScreen mainScreen] bounds].size.height-568)可以是零或者非零,所以当[[UIScreen mainScreen] bounds].size.height等于568时,上面的语句是零,零表示假,所以它返回“YES”。

于 2013-03-28T08:40:06.810 回答