2011-01-24 13 views
0

元はiPhoneだったプロジェクトのXcodeで新しいiPadターゲットを作成しました。 Appleが推奨するように、私はiPad固有のView Controllerも作成し、iPhoneのView Controllerコードの多くをiPadのバージョンにコピーして貼り付けました。問題は#defineとenumsとの衝突が多いことです。iphone/ipad - 2つの異なるターゲット、表示コントローラ内の競合

私はこれがある場合:

#define birdSize 175 

私はむしろのように計算されたビューコントローラでそれを再定義する必要はありませ思います。

#define birdSize_iPad 400 

してから検索し、内のすべてのインスタンスを置き換えます実装。私は定義された値を変更するだけですが、それはiPhoneのバージョンに影響します。 2つの質問:

  1. これらのビューコントローラが異なるターゲットに含まれていると、なぜ競合が発生するのですか?
  2. この状況に対処する最善の方法は何ですか?

答えて

1

1.) "#define birdSize"でヘッダーファイルをiPadのView Controllerにインポートしたようです。たぶん間接的に?あなたが私たちにあなたの輸入品を見せることができれば、それはもっと簡単に言えるでしょう。

2)私は「最良の方法」についてはわかりませんが、ここで私がこれを解決した方法です: iPad - >設定をビルド - > GCC CFLAGS

-DIPAD 

、あなたは簡単に次のようになりますこと、どこかbirdSizeの一つの定義を持つことができます:多分ない最もエレガントな方法

#ifdef IPAD 
    #define birdSize 400 
#else 
    #define birdSize 175 
#endif 

が、それは私のために正常に動作します。

関連する問題