9

[[UIDevice currentDevice] systemVersion]実行時(例)とコンパイル時(例:__IPHONE_OS_VERSION_MIN_REQUIREDチェック)の違いは何ですか?いつあなたはお互いを重ねるべきですか?

__IPHONE_OS_VERSION_MIN_REQUIREDビルド設定で設定された変数だけですか?

特定のiPhoneバージョンをターゲットにする方法の回答を読みましたか?および以下にリストされているその他の関連する質問。

しかし、Xcode 4を使用してiPhone(4.3.1)でビルドおよび実行すると、気づきました__IPHONE_OS_VERSION_MIN_REQUIRED = 30200。なぜですか?

あなたがあなたのコードをアップルに提出するとき、彼らは存在するiPhoneのバージョンごとにそれのバージョンをコンパイルし、それに__IPHONE_OS_VERSION_MIN_REQUIRED応じて設定しますか?

そうすれば__IPHONE_OS_VERSION_MIN_REQUIRED、コードを実行しているiOSのバージョンを調べて知ることができます。

関連する質問:

4

3 に答える 3

9

__IPHONE_OS_VERSION_MIN_REQUIREDこれは実際には単なるビルド設定であり、プリプロセッサで使用して、コンパイル前にコードを変更できます。いいえ、AppleはiPhoneごとにコードをコンパイルしません。あなたが彼らにコードを与えないので、彼らはできません。コンパイル時チェックを使用して、たとえば、古いOSバージョンの新機能をエミュレートするためにコードをコンパイルする必要があるかどうかを判断できます。ただし、ランタイムバージョンチェックを使用して、その機能の組み込みバージョンとエミュレートバージョンのどちらを使用する必要があるかを判断します。

たとえば、iAdは4.0で追加されました。現在4.0以降をサポートしていますが、将来的に3.2のサポートを追加する予定です。ランタイムチェックを使用して古いバージョンで他の広告を表示するコードを作成し、iAdまたは他の広告を使用する必要があるかどうかを判断しますが、アプリケーションの残りの部分が3.2に対応するまで、どのリリースにも表示されないようにします。アプリケーションを大きくします。プリプロセッサがそのコードをリリースから除外するように、コンパイル時チェックを使用します。最小バージョンマクロを使用すると、最小バージョンのビルド設定を変更して、リリースにコードを簡単に追加できます。

于 2011-07-08T03:39:54.090 に答える
4

はい、__IPHONE_OS_VERSION_MIN_REQUIRED「ビルド設定」の下の「iOS展開ターゲット」の値です。プロジェクトではなく、正しいターゲットが選択されていることを確認してください。

そして、__IPHONE_OS_VERSION_MAX_ALLOWED「BaseSDK」ビルド設定に対応します。

于 2011-07-08T14:10:03.420 に答える
0

開発者が使用するコンパイルおよび実行時またはプログラミングワード。したがって、コンパイル時の最良の例は、構文のインポートやプロパティとメソッドの宣言などのコードの書き込み時間です。ARCはコンパイル時のプログラミングです。そして、開発者がコードを書いた後にRUNTimeに来ると、プログラムが実行され、ランタイムと呼ばれます。今回はコードがコンパイルされ、プログラムのクラッシュなどの実行時エラーが発生し、fourseはそのようなプログラムの予期しない動作を閉じます。

詳細については、以下のURLをご覧ください。

http://pc.net/helpcenter/answers/compile_time_vs_runtime

于 2015-07-22T06:34:19.500 に答える