2012-02-07 1 views
4

У меня есть проект, который я разделяю на две цели. В исходном проекте с одной целью используется несколько команд define, однако мне нужно, чтобы эти значения теперь были разными в зависимости от того, какую цель я создаю.Как указать команды #define для моих двух разных целей

Каков правильный способ сделать это? Должен ли я использовать NStrings, объявленные в AppDelegate? Или я могу использовать инструкцию #if при настройке #defines?

Любая помощь, очень ценится.

ответ

3

Один подход был бы так:

#if defined(MON_TARGET_A) 
    #define MON_TARGET_NAME "App A" 
#elif defined(MON_TARGET_B) 
    #define MON_TARGET_NAME "App B" 
#else 
    #error "which target are you building?" 
#endif 

Затем добавьте MON_TARGET_A или MON_TARGET_B настройки препроцессора вашей цели.

Обычно вы используете GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS, а не GCC_PREPROCESSOR_DEFINITIONS, потому что последний может предотвратить совместное использование заголовков PCH.

Чтобы добавить это, перейдите по ссылкам:

Навигатор
  • Project -> Project -> Target -> Параметры построения

затем падение GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS в поле поиска и установите его значение на что-то вроде: MON_TARGET_A $(inherited)

+0

Justin! Благодаря! Это прибило его. Ты да, человек! – theDuncs

+0

@ DuncanCampbell приветствую - приветствия :) – justin

+0

Почему префикс MON _..., просто из любопытства? –

0

Вы можете добавить дополнительные макросы препроцессора в целевые настройки (Preprocessing-> Preprocessor Macros) и использовать #ifdef.

Это самый гибкий подход.

+0

Макс! Вы были на месте, но Джастин попал туда первым. Спасибо, в любом случае, сэр! – theDuncs

 Смежные вопросы

  • Нет связанных вопросов^_^