4

この質問は、iOS のバージョンに基づいて条件付きでコードを含める方法に対処します。しかし、それはどのように機能しますか?

iOS Deployment TargetXcode 4.5.2 で 3.2に設定したとします。私のコードでは、いくつかの#ifdefステートメントを入れました:

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
  // Some iOS 4+ code
#endif

3.2 デバイスでコードを実行すると、このコードは表示されませんが、4.3 デバイスで実行すると表示されますよね? それはどのように起こりますか?それとも、ここで何が起こっているのか誤解していますか?

4

1 に答える 1

4

これはコンパイル時のチェックであるため、どのiOSバージョンでも同じ動作を作成します。展開ターゲットが4.0未満であるため、ifステートメント内のコードはどのデバイスでも実行されません。

説明した動作が必要な場合は、ランタイムチェックを行う必要があります。リンクしたスレッドでこれを行う方法の例を見ることができます。

于 2012-11-16T02:06:45.303 に答える