iphone/ipad - две разные цели, конфликты в контроллерах представления

Поэтому я создал новую цель iPad в Xcode для проекта, который изначально был только для iPhone. Как рекомендует Apple, я также создал контроллеры представления для iPad, а также скопировал и вставил большую часть кода контроллера представления iphone в версии для iPad. Проблема в том, что у меня много конфликтов с #define и enums.

Если у меня есть это:

#define birdSize 175

Я бы предпочел не переопределять его в контроллере представления iPad как:

#define birdSize_iPad 400

а затем искать и заменять все экземпляры в реализации. Я хотел бы просто изменить определенное значение, но это повлияет на версию для iPhone. Два вопроса:

  1. Почему возникают конфликты, когда эти контроллеры представлений включены в разные цели?
  2. Каков наилучший способ справиться с этой ситуацией?

person sol    schedule 24.01.2011    source источник


Ответы (1)


1.) Похоже, вы импортируете файл заголовка с параметром «#define birdSize» также в контроллер просмотра iPad. Может косвенно? Если бы вы могли показать нам свой импорт, было бы легче сказать...

2.) Я не знаю насчет «лучшего способа», но вот как я это решил: Параметры цели для iPad -> Настройки сборки -> GCC CFLAGS

-DIPAD

тогда у вас может быть где-нибудь одно определение BirdSize, которое будет выглядеть так:

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

Может быть, не самый элегантный способ, но он отлично работает для меня.

person Constantin    schedule 24.01.2011