0

そのため、もともと iPhone のみだったプロジェクト用に、Xcode で新しい iPad ターゲットを作成しました。Apple が推奨するように、私は iPad 固有のビュー コントローラーも作成し、iPhone のビュー コントローラー コードの多くをコピーして iPad バージョンに貼り付けました。問題は、#defines と列挙型との競合が多いことです。

私がこれを持っている場合:

#define birdSize 175

iPadビューコントローラーで次のように再定義する必要はありません。

#define birdSize_iPad 400

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

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

1 に答える 1

1

1.) iPad View Controller にも「#define birdSize」を使用してヘッダー ファイルをインポートしているようです。もしかして間接的に?輸入品を見せていただければ、より簡単に言うことができます...

2.) 「最善の方法」についてはわかりませんが、これを解決する方法は次のとおりです: iPad のターゲット オプション -> ビルド設定 -> GCC CFLAGS

-DIPAD

次に、どこかにbirdSizeの定義を簡単に1つ持つことができます。それは次のようになります。

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

最もエレガントな方法ではないかもしれませんが、私にとってはうまくいきます。

于 2011-01-24T06:27:15.820 に答える