Manejo de registros de Objective-C

Método NSLog

Para imprimir registros, usamos el método NSLog en el lenguaje de programación Objective-C que hemos usado directamente desde el ejemplo de Hello World.

Veamos un código simple que imprimiría las palabras "Hola mundo" -

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Hello, World! \n");
   return 0;
}

Ahora, cuando compilemos y ejecutemos el programa, obtendremos el siguiente resultado.

2013-09-16 00:32:50.888 demo[16669] Hello, World!

Deshabilitar registros en aplicaciones en vivo

Dado que los NSLogs que usamos en nuestra aplicación, se imprimirán en los registros del dispositivo y no es bueno imprimir los registros en una compilación en vivo. Por lo tanto, usamos una definición de tipo para imprimir registros y podemos usarlos como se muestra a continuación.

#import <Foundation/Foundation.h>

#if DEBUG == 0
#define DebugLog(...)
#elif DEBUG == 1
#define DebugLog(...) NSLog(__VA_ARGS__)
#endif

int main() {
   DebugLog(@"Debug log, our custom addition gets \
   printed during debug only" );
   NSLog(@"NSLog gets printed always" );     
   return 0;
}

Ahora, cuando compilemos y ejecutemos el programa en modo de depuración, obtendremos el siguiente resultado.

2013-09-11 02:47:07.723 demo[618] Debug log, our custom addition gets printed during debug only
2013-09-11 02:47:07.723 demo[618] NSLog gets printed always

Ahora, cuando compilemos y ejecutemos el programa en modo de lanzamiento, obtendremos el siguiente resultado.

2013-09-11 02:47:45.248 demo[3158] NSLog gets printed always