Wie bereits erwähnt, bin ich Student und brauche Dinge, die etwas klarer definiert sind, um mitzumachen. Nach vielen Recherchen musste ich folgende Reihenfolge einhalten:
Klicken Sie oben im Datei-Navigator links im Xcode-Projektfenster auf den Projektnamen. Dies ist eine Zeile mit dem Namen des Projekts, der Anzahl der Build-Ziele und der iOS SDK-Version.
Wählen Sie die Registerkarte Build Settings und scrollen Sie zum Abschnitt " Swift Compiler - Custom Flags " unten. Klicken Sie auf den Abwärtspfeil neben Andere Flags , um den Abschnitt zu erweitern.
Klicken Sie auf die Debug- Zeile, um sie auszuwählen. Platzieren Sie den Mauszeiger über der rechten Seite der Linie und doppelklicken Sie. Eine Listenansicht wird angezeigt. Klicken Sie unten links in der Listenansicht auf die Schaltfläche + , um einen Wert hinzuzufügen. Ein Textfeld wird aktiv.
Geben Sie im Textfeld den Text ein -D DEBUG
und drücken Sie die Eingabetaste , um die Zeile festzuschreiben.
Fügen Sie Ihrem Projekt eine neue Swift-Datei hinzu. Sie möchten eine benutzerdefinierte Klasse für die Datei erstellen. Geben Sie daher Text wie folgt ein:
class Log {
var intFor : Int
init() {
intFor = 42
}
func DLog(message: String, function: String = __FUNCTION__) {
#if DEBUG
println("\(function): \(message)")
#endif
}
}
Ich hatte Probleme, die Klasse heute von Xcode zu akzeptieren, daher ist der Init möglicherweise etwas schwerer als nötig.
Jetzt müssen Sie Ihre benutzerdefinierte Klasse in jeder Klasse referenzieren, in der Sie die neue benutzerdefinierte Funktion anstelle von println()
Add this als Eigenschaft in jeder anwendbaren Klasse verwenden möchten:
let logFor = Log()
Jetzt können Sie alle Instanzen von println()
durch ersetzenlogFor.DLog()
. Die Ausgabe enthält auch den Namen der Funktion, in der die Zeile aufgerufen wurde.
Beachten Sie, dass ich innerhalb von Klassenfunktionen die Funktion nur aufrufen konnte, wenn ich eine Kopie der Funktion als Klassenfunktion in dieser Klasse erstellt habe, und dass println()
die Eingabe auch etwas flexibler ist, sodass ich sie nicht in jedem Fall in verwenden konnte mein Code.