/ / Debug-Modus unter iOS - Objective-C, iOS, Remote-Debugging, Debug-Modus

Debug-Modus auf iOS - Ziel-C, iOS, Remote-Debugging, Debug-Modus

Ich habe dies eine Weile untersucht und bin mir nicht ganz sicher, was ich tun soll.

Ich möchte Benutzern erlauben, den Debug-Modus entweder ein- oder auszuschalten. Im Debug-Modus werden NSLogs auf der Konsole gedruckt.

Derzeit kann ich den Debug-Modus in den Build-Einstellungen mit einem Präprozessor (DEBUG) ein- oder ausschalten und verwende den folgenden Code, um NSLogs zu "blockieren".

#ifdef DEBUG
NSLog(@"If you can see this then debug is on");
#endif

Ich habe auf der Einstellungsseite einen Kippschalter erstellt, um Eingaben vom Benutzer zu erhalten, weiß aber nicht, wie ich diese Eingaben verwenden soll, um DEBUG zu definieren / neu zu definieren. Irgendwelche Ideen?

Ich bin mir nicht sicher, ob dies überhaupt möglich ist, daher wären auch alternative Lösungen willkommen.

Danke vielmals :)

Antworten:

5 für die Antwort № 1

Sie sollten keine Präprozessor-Direktiven verwenden: using #ifdef DEBUG bedeutet, dass, wenn DEBUG ist nicht definiert, dieser Code wird überhaupt nicht kompiliert.

Sie sollten stattdessen Präprozessoranweisungen durch eine einfache if-Anweisung ersetzen, die eine globale Variable überprüft (oder zumindest eine Lösung darstellt).


0 für die Antwort № 2

Ich glaube, Ihr Codeblock würde nur prüfen, ob Sie für Debug oder Release erstellen, und wird entsprechend erstellen.

Sie können es auf einem Gerät erstellen, das sich im Release-Modus befindet. Ich glaube nicht, dass es sonst möglich ist, den Simulator im Release-Modus auszuführen.

Möglicherweise wird die Anwendung für den Simulator manuell erstellt und die gepackte Datei so verschoben, dass sie nur auf dem Simulator ausgeführt wird, ohne dass xcode ausgeführt wird, aber ich denke, das ist nicht sinnvoll.