Xcode: desarrollo condicional o modo de producción

Al search esto solo pude encontrar información para otros idiomas. Me gustaría conocer la mejor práctica para escribir estatutos condicionales, tales como:

if (DEV_MODE){ //do something }else{ //do the real stuff } 

Y luego configurar DEV_MODE en o desactivar en algún file global, así que solo tengo que cambiarlo para activar o desactivar en lugar de cambiar el código en varios lugares. Tengo algunas ideas, pero busco consejos sobre la mejor manera de hacerlo.

Prueba esto:

 #ifdef DEBUG // do stuff #endif 

La versión actual de Xcode establece automáticamente esta macro en nuevos proyectos. Ve a tus proyectos Build Settings para asegurarte. Si no está allí, debe agregarlo usted mismo:

introduzca la descripción de la imagen aquí

(Esta pregunta no está relacionada con Xcode. )

Dicho esto, en lugar de contaminar su código con IF de estilo C, puede usar directivas de preprocesador para filtrar el modo de debugging y liberación. Por lo que sé, es una práctica común definir el macro DEBUG a 1 si está en modo de testing, y no definirlo si está en modo de lanzamiento. (Además, Xcode puede definir esto para usted, en el que se ha confiado en este comportamiento). La razón es que el uso del preprocesador es más legible, ya que no entra en la sangría, está mejor separado del código visualmente Para resumir, testing

 #ifdef DEBUG // do debug stuff here #else // do release stuff here #endif 

Un argumento adicional para las macros del preprocesador es que puede condicionalizar el espacio de nombres global, que no podría dentro del código C. I. e., Con macros de preprocesador, puede escribir

 #ifdef DEBUG int functionOne() { } #else char *functionTwo(int a) { } #endif 

No podría hacer esto sin el preprocesador.

Las variables del preprocesador son las que desea, en sus configuraciones de compilation definen una variable ( DEV_MODE por ejemplo) y luego utilizan comprobaciones de preprocesador como:

 #if DEV_MODE //dev mode code #else //non-dev mode code #endif 

En la configuration de su proyecto, hay una sección llamada "Macros del preprocesador". En esa sección puede agregar una cadena para su construcción de debugging, como "DEV_MODE" o lo que quiera. Luego puede hacer las condiciones que mencionó anteriormente y cuando su aplicación se construya para "Liberar" o cualquier otra configuration que no contenga su macro, su cheque debería fallar.