Cómo especificar los commands #define para mis dos objectives diferentes

Tengo un proyecto que estoy dividiendo en dos objectives. El proyecto original de un solo objective utiliza una serie de commands de definición, pero necesito que estos valores sean diferentes según el objective que esté construyendo.

¿Cuál es la forma correcta de hacer eso? ¿Debería estar usando NStrings declarado en AppDelegate? ¿O puedo usar una statement #if cuando configuro #defines?

Cualquier ayuda, muy apreciada.

Un enfoque sería así:

#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 

A continuación, agregue MON_TARGET_A o MON_TARGET_B a la configuration del preprocesador de su destino.

Por lo general, usará GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS y no GCC_PREPROCESSOR_DEFINITIONS porque este último puede evitar compartir encabezados de PCH.

Para agregar esto, vaya a:

  • Navegador de proyectos -> Proyecto -> Destino -> Configuración de compilation

luego suelte GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS en el campo de búsqueda y establezca su valor en algo así: MON_TARGET_A $(inherited)

Puede agregar macros de preprocesador adicionales en su configuration de destino (Preprocessing-> Macros de preprocesador) y use #ifdef.

Este es el enfoque más flexible.