2017-07-18 84 views
9

XCode 9, Beta 3'ü kullanma. Swift 4Swift 4: '(_) ->()' değerinin beklenen argüman türüne dönüştürülemez '() ->()' ya da bağımsız değişkeni içeren argümana çağrılan argüman

statsView.createButton("Button name") { [weak self] Void in 
    //stuff stuff 
    self?.doSomething() 
} 

Bunun gibi yüzlerce hata alıyorum, bunları nasıl düzeltebilirim?

hatalar:

Cannot convert value of type '(_) ->()' to expected argument type '() ->()' 

Argument passed to call that takes no arguments 

cevap

22

Biz artık Swift 4 Void in kullanmayın görünüyor. Onları sabit Nasıl:

Expected ',' separator 

ile şikayet ile hiçbir argüman sonra Void in kullanmayın varsa Sen in kullanmak zorunda

statsView.createButton("Button name") { [weak self] in 
    //stuff stuff 
    self?.doSomething() 
} 

veya derleyici:

Void anahtar kelimeyi sil hiç

statsView.createButton("Button name") { //No "Void in" in here 
    print("hi") 
}