解释如下([[uisscreen mainScreen] bounds].size.height-568)通知的代码



需要解释iPhone的高度和568尺寸之间的减法代码

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

该语法是三元条件,它看起来像这样,

variable = (something that evaluates to YES or NO)? set variable to this if YES : set variable to this if NO;

因此,对于屏幕为568高的iPhone 5,表达式的计算结果为0,与NO相同,因此IS_IPONE5被设置为冒号后面的值,即YES。任何其他屏幕大小将计算为一个数字,而不是等同于YES的0,因此IS_IPHONE5被设置为冒号NO之前的值。

这里使用的是继condition ? value_if_true : value_if_false之后的三元运算符?:

所以…

([[UIScreen mainScreen] bounds].size.height-568)为条件。在几乎所有的编程语言中,0都被计算为false,其他的都是true。在这种情况下,如果mainScreen的高度等于568,上面的表达式将导致0,这被认为是假的。选择三元操作符的第二个值,在本例中为YES。否则,它将选择第一个值NO。它告诉当前设备是否是iPhone 5,屏幕高度为568点。

最新更新