Dancing in the Debugger — A Waltz with LLDB makalesini okuyorum. Ve Swift 2.2 yanı sıra Swift 3.0 ile thread return
komutunu deniyorum.LLDB 'thread return' komutu, Swift işlevinde hata yayar
Kodum oldukça basittir:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let resust = test()
print(resust)
}
func test() -> Bool {
return true
}
}
ve ben bir thread return false
eylem ile test()
işlevi başında bir kesme noktası eklendi. Ancak, + R komutundan sonra, programım beklendiği gibi kesme noktasında durur, ancak aşağıdaki hata ile birlikte:
"hata: 1. iş parçacığının 0 numaralı karesinden dönen hata: Yalnızca şu anda basit tamsayı ve float dönüş türlerinin ayarlanmasını destekliyoruz .." İşte
bir ekran görüntüsü var: Sonra Objective-C kodunda aynı çalıştı; her şey iyi gidiyor.
Swift 'Bool' s bir yapı olarak uygulanır, bu nedenle "basit bir tam sayı ve float dönüş tipi" değildir. ObjC'de çalışır, çünkü ObjC 'BOOL' ilkel tipte bir yazımdır. – dan
İş parçacığı dönüşünü 10 (ya da başka bir sayı) 'i eylem olarak denedim, ancak program yine aynı hatayla durdu. :( – oneMortale
Belki Swift iş parçacığı kasaları güvenli olduğu için dolaylı olarak boole değerine dönüştürülür? – Leviathlon