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

その意味は :

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 に答える
2

(0 ? "yes" : "no")になります"no"

(0 ? "no" : "yes")になります"yes"

に続く?式は、ブール式が true の場合の結果です。に続く:式は、ブール式が false の場合の結果です。

于 2013-03-22T13:19:02.240 に答える
1

とてもシンプルです。

あなたはすでにロジックを解決していました.YesはZeroと言い、ZeroではYESを返します。

プログラミングでは、ゼロは偽を意味するからです!したがって、False は「YES」を返します。

一方、ゼロ以外は TRUE を意味します! したがって、TRUE は「NO」を返します。

ここでは三項演算子が使用されており、上記の方法で機能します。

于 2013-03-22T13:17:10.580 に答える
0

最初に、「isTrue?NO:YES」のようなステートメントがあります。これは、「?」の前のステートメントが本当に正しい場合、ステートメント全体(isTrue?NO:YES)の値が「NO」であり、そうでない場合、値が「NO」であることを意味します。 "YES"; ここで、このステートメント ([[UIScreen mainScreen] bounds].size.height-568) の値はゼロまたは非ゼロのいずれかになる可能性があるため、[[UIScreen mainScreen] bounds].size.height が 568 に等しい場合、上記のステートメントはゼロです。ゼロは偽を意味するため、「YES」を返します。

于 2013-03-28T08:40:06.810 に答える