In Objective-C könnten wir die Makros __LINE__
und __PRETTY_FUNCTION__
verwenden. Diese werden nicht in der Swift-Sprache veröffentlicht. Gibt es eine andere Möglichkeit, ähnliche Informationen in Swift zu erhalten?Gibt es eine Möglichkeit, die Zeilennummer und den Funktionsnamen in der Swift-Sprache zu erhalten?
Q
Gibt es eine Möglichkeit, die Zeilennummer und den Funktionsnamen in der Swift-Sprache zu erhalten?
29
A
Antwort
26
Die Swift Language Reference defines einige "special Literale", die dieses Verhalten bieten:
Literal Type Value
#file String The name of the file in which it appears.
#line Int The line number on which it appears.
#column Int The column number in which it begins.
#function String The name of the declaration in which it appears.
91
Literal Type Value
#file String The name of the file in which it appears.
#line Int The line number on which it appears.
#column Int The column number in which it begins.
#function String The name of the declaration in which it appears.
Beispiel
print("Function: \(#function), line: \(#line)")
mit Standardwerten in den Parametern Sie auch eine Funktion
public func track(_ message: String, file: String = #file, function: String = #function, line: Int = #line) {
print("\(message) called from \(function) \(file):\(line)")
}
erstellen
die
In Swift 2.1 und unter https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Expressions.html#//apple_ref/doc/uid/TP40014097-CH32-ID390
für weitere Informationen wie diesetrack("enters app")
Siehe Dokumentation verwendet werden:
Literal Type Value
__FILE__ String The name of the file in which it appears.
__LINE__ Int The line number on which it appears.
__COLUMN__ Int The column number in which it begins.
__FUNCTION__ String The name of the declaration in which it appears.
Beispiel
print("Function: \(__FUNCTION__), line: \(__LINE__)")
0
Sie können auf diese Weise nur den Dateinamen erhalten.
let errorLocation = (#file as NSString).lastPathComponent
print(errorLocation)
oder
let errorLocation = filePath.components(separatedBy: "/").last!
print(errorLocation)
Ausgang
ViewController.swift
Verwandte Themen
- 1. Gibt es eine Möglichkeit, den Fortschrittswert eines Fensters zu erhalten?
- 2. Gibt es eine Möglichkeit, den Ursprung einer Alarmbox zu erhalten?
- 3. Gibt es eine Möglichkeit, den Namen der lokalen Funktion zu erhalten, die in Matlab ausgeführt wird?
- 4. Gibt es eine Möglichkeit, die Sicherheit Panel-Daten zu erhalten
- 5. Gibt es eine Möglichkeit, die Textfeldinformationen eines Containers zu erhalten?
- 6. glibc: Gibt es eine Möglichkeit, die verwendeten Konfigurationsbefehlszeilenoptionen zu erhalten?
- 7. Gibt es eine Möglichkeit, eine Cookie-Antwort schnell zu erhalten?
- 8. Gibt es eine Möglichkeit, Publishing Queue in Sitecore zu erhalten?
- 9. Gibt es eine Möglichkeit, Quartalstermine in MS SQL zu erhalten?
- 10. Gibt es eine einfache Möglichkeit, Bildabmessungen in Ruby zu erhalten?
- 11. Gibt es eine Möglichkeit, die Breite und Höhe der PowerPoint-Folie ohne aktives Dokument zu erhalten?
- 12. Gibt es eine Möglichkeit, eine Lesezeichen Zeilennummer in Visual Studio 2013 zu verschieben?
- 13. Gibt es eine Möglichkeit, die Höhe und Breite der Bildlaufleiste zu erhalten?
- 14. Gibt es eine Möglichkeit, bestimmte UIImageView-Eigenschaften zu erhalten?
- 15. Gibt es eine ergänzende Möglichkeit, etwas wie Mausereignisse zu erhalten?
- 16. TStringGrid - gibt es eine einfache Möglichkeit, die "aktuelle/ausgewählte" Zeile zu erhalten?
- 17. Gibt es eine Möglichkeit, HSQLDB-Daten zu erhalten?
- 18. Gibt es eine Möglichkeit, Pixeldaten vom Internet Explorer zu erhalten?
- 19. Gibt es eine bessere Möglichkeit, alte Daten zu erhalten?
- 20. Gibt es eine Möglichkeit, alle Attribute eines DOMEelements zu erhalten?
- 21. Generic for-loop: Gibt es eine Möglichkeit, Iterationsinformationen zu erhalten?
- 22. Gibt es eine datenbankunabhängige Möglichkeit, Datenänderungsbenachrichtigungen auf Feldebene zu erhalten?
- 23. Gibt es eine einfache Möglichkeit, alle gängigen Modulerweiterungen zu erhalten?
- 24. Gibt es eine Möglichkeit, Twitter-Benutzer-E-Mails zu erhalten?
- 25. Gibt es eine Möglichkeit, den Rückgabetyp der "aktuellen Funktion" zu erhalten
- 26. Oracle: Gibt es eine Möglichkeit, aktuelle SQL-Syntaxfehler zu erhalten?
- 27. Gibt es eine allgemeine Möglichkeit, den Datensatz oder die Attribute eines Polymerelements zu erhalten?
- 28. Gibt es eine Möglichkeit, Tastaturereignisse ohne JFrame zu erhalten?
- 29. Gibt es eine Möglichkeit, die Anzahl der Unterelemente in einer Listenansicht zu erhalten?
- 30. Gibt es eine einfache Möglichkeit, das Alphabet programmatisch zu erhalten?
Diese nicht mehr aktualisiert wird. Swift 3 aktualisiert diese Konstante. @hfossli Antwort ist jetzt die richtige Antwort. – jollyr0ger
@ jollyr0ger das ist, was die Schaltfläche "bearbeiten" ist: D – Fogmeister