6

設定ファイルでマクロを使用することは可能ですか?私は次のようなことを達成したい:

if iPad
set variable to 1
else
set variable to 0

それは可能ですか?このためにスクリプトを使用したくありません。

4

3 に答える 3

9

通常、これはコンパイル時ではなく実行時にチェックする必要があります。iOS-条件付きコンパイル(xcode)を参照してください。

そうしない場合は、@ Robert Vojtaが示唆するように、通常は別のターゲットを使用することをお勧めします。

そうは言っても、これが共有コードの一部で役立つ場合を想像することができます。それで...

と呼ばれる使用できるxcconfig変数がありますTARGETED_DEVICE_FAMILY。iPhoneとiPodTouchの場合は1、iPadの場合は2を返します。これは、一種のマクロを作成するために使用できます。このアプローチはあまりお勧めしませんが、その方法は次のとおりです。次のような値を設定しようとしていたとしましょうSETTINGS

// Family 1 is iPhone/iPod Touch. Family 2 is iPad
SettingsForFamily1 = ...
SettingsForFamily2 = ...
SETTINGS = $(SettingsForFamily$(TARGETED_DEVICE_FAMILY))

私は自分のプロジェクトでこれを数回行いました(iPadの検出ではなく、他の問題のために)。私がそれを行うたびに、もう少し考えて、それを削除してより簡単な方法で実行することができました(通常、プロジェクトを構造化して必要性を取り除く別の方法を見つけます)。ただし、これはxcconfigで条件を作成するための手法です。

于 2012-09-30T22:24:52.480 に答える
4

AFAIKそれは不可能です。しかし、単純なタスクを解決したい場合-多くの一般的な設定とほんのわずかな変数が異なる値を持っている場合、これを行うことができます:

generic.xcconfig:

settings for both configs

ipad.xcconfig:

#include "generic.xcconfig"
ipad-specific-settings

iphone.xcconfig

#include "generic.xcconfig"
iphone-specific-settings

これはあなたの状態の必要性を解決することができます。私はこのスキーマを頻繁に使用します。

于 2012-09-30T17:49:49.610 に答える
0

それは可能ではありません。構成ファイルは前処理(およびコンパイル)されません。あなたは何をしようとしているのですか?

于 2012-09-30T17:41:32.253 に答える