-2
#define IS_4_INCH ([[UIScreen mainScreen] bounds].size.height == 568)

上記の IS_4_INCH は、アプリを 4 インチ シミュレーターで実行すると true になります。ランタイム環境を決定するプリプロセッサ ディレクティブです。

これをすぐにクラスメソッドに移動します。しかし、そのステートメントがどのように機能したかを理解するために考えました。

助けてください。

ありがとう。

4

4 に答える 4

2

プリプロセッサは基本的に文字列の置換を行います(これは単純化しすぎているかもしれませんが、あなたの例では問題ありません)。

したがって、それが表示されるたびに、IS_4_INCHそれが置き換えられます([[UIScreen mainScreen] bounds].size.height == 568)

たとえば

if(IS_4_INCH) { 

に変わるだろう

if(([[UIScreen mainScreen] bounds].size.height == 568)) {

そして、コンパイラがオフになり、コードをコンパイルします。コンパイラは、あなたが書いたことを知りませんIS_4_INCH

于 2013-05-08T04:37:52.983 に答える