Objective-C-Protokollbehandlung

NSLog-Methode

Zum Drucken von Protokollen verwenden wir die NSLog-Methode in der Programmiersprache Objective-C, die wir direkt aus dem Hello World-Beispiel verwendet haben.

Schauen wir uns einen einfachen Code an, der die Wörter "Hello World" druckt -

#import <Foundation/Foundation.h>

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

Wenn wir nun das Programm kompilieren und ausführen, erhalten wir das folgende Ergebnis.

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

Deaktivieren von Protokollen in Live-Apps

Da die NSLogs, die wir in unserer Anwendung verwenden, in Protokollen des Geräts gedruckt werden und es nicht gut ist, Protokolle in einem Live-Build zu drucken. Daher verwenden wir eine Typdefinition zum Drucken von Protokollen und können diese wie unten gezeigt verwenden.

#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;
}

Wenn wir nun das Programm im Debug-Modus kompilieren und ausführen, erhalten wir das folgende Ergebnis.

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

Wenn wir nun das Programm im Release-Modus kompilieren und ausführen, erhalten wir das folgende Ergebnis.

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