2011-09-19 15 views
16

Tengo dos objetivos en mi proyecto de iPhone con iOS: Production y Preview.iOS: código condicional según el objetivo actual

Ahora quiero ejecutar una línea de código, solo si estoy en el destino Preview. Supongo que esto debería ser algún tipo de #ifdef .... Encontré a solution que hace casi lo que quiero, pero usa la configuración y no el objetivo.

Ejemplo:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    #ifdef MY_PREVIEW_TARGET 
    [SomeLibraryWhichIsInPreviewTarget someMethod]; 
    #endif 

    // Code that applies for both targets ... 
} 

Gracias por su ayuda

Respuesta

19

Se podría añadir un preprocesador ifdef en la sección de macros del preprocesador de las configuraciones de la compilación.

+0

¿Por qué debería ser Macro de preprocesador. Como es útil para "USUARIO", debe ser "Definido por el usuario". ¿No es así? – Satyam

36

La solución de Sams funcionó bien. configuración de generación de destino

  1. abierto de vista previa del
  2. Ajuste el Preprocessor Macros a MY_PREVIEW_TARGET=YES y luego puedo usar mi código anterior para comprobar si el objetivo.
+10

Simplemente agregue la entrada 'MY_PREVIEW_TARGET' a' Macros de preprocesador'. Luego use '#ifdef MY_PREVIEW_TARGET' en su código. No es necesario configurar realmente la macro a 'SÍ' como en' MY_PREVIEW_TARGET = YES'. No es necesario establecer un valor, ya que no está controlando ese valor, simplemente la existencia de la variable. – SwiftArchitect

Cuestiones relacionadas