2017-10-05 28 views
0

這段代碼在Swift 3中運行良好,但現在通過Xcode將代碼轉換爲Swift 4後,它出現錯誤。根據我從Web服務獲得的值,我正在主隊列中呈現下一個場景。無法轉換類型'(_) - >()?'的值到預期的參數類型'@convention(block)() - > Void'

DispatchQueue.main.async { 
    [weak self] value in 
    self?.router?.invokeTheSegueAfterTheWebService(navigationKey: arrayElementsGot["questionType"] as! String, givenViewController: self!) 
} 

回答

2

在夫特3,value參數推斷爲具有類型()

Swift 4不再允許您爲上下文應該採用不同數量參數的塊提供單個參數。所以,你的代碼看起來應該像

DispatchQueue.main.async { 
    [weak self] in 
    self?.router?.invokeTheSegueAfterTheWebService(navigationKey: arrayElementsGot["questionType"] as! String, givenViewController: self!) 
} 

如果你看一下你得到的錯誤,它說,它預期() -> Void(如不帶參數塊),但你通過它(_) ->()(如與未知的一個參數塊類型)。

相關問題