Ich lese den Dancing in the Debugger — A Waltz with LLDB Artikel. Und ich versuche den Befehl thread return
mit Swift 2.2 sowie Swift 3.0.LLDB 'Thread Return' Befehl gibt Fehler in einer Swift-Funktion aus
Mein Code ist ziemlich einfach:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let resust = test()
print(resust)
}
func test() -> Bool {
return true
}
}
und fügte ich einen Haltepunkt zu Beginn der test()
Funktion mit einer thread return false
Aktion. Nach Befehl + R stoppt mein Programm jedoch wie erwartet am Haltepunkt, aber mit dem folgenden Fehler:
"Fehler: Fehler beim Zurückkehren von Frame 0 von Thread 1: Wir unterstützen derzeit nur einfache Integer und Float-Return-Typen festlegen ..“
Hier ein Screenshot:
Dann habe ich versucht, das gleiche in Objective-C-Code; alles läuft gut.
Swift 'Bool' s sind als eine Struktur implementiert, also ist es kein "einfacher Integer und Float-Return-Typ". Es funktioniert in ObjC, weil ein ObjC 'BOOL' nur eine Typdefinition eines primitiven Typs ist. – dan
Ich habe 'thread return 10 (oder andere Nummer)' als Aktion versucht, das Programm stoppte jedoch immer noch mit dem gleichen Fehler. :( – oneMortale
Vielleicht ist es implizit in booleschen Wert konvertiert, da Swift Thread-Container typsicher sind? – Leviathlon