簡體   English   中英

無法轉換類型'(_)->()的值? 到預期的參數類型'@convention(block)()-> Void'

[英]Cannot convert value of type '(_) -> ()?' to expected argument type '@convention(block) () -> Void'

這段代碼在Swift 3中運行良好,但是現在在Xcode將代碼轉換為Swift 4之后,它拋出了錯誤。 我根據從Web服務獲得的值在主隊列中呈現下一個場景。

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

在Swift 3中, value參數被推斷為具有類型()

Swift 4不再允許您提供一個參數來根據上下文采用不同數量的參數。 所以你的代碼應該看起來像

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

如果您查看錯誤,它說它期望() -> Void (例如,一個沒有參數的塊),但您傳遞了該錯誤(_) -> () (例如,一個帶有未知類型的參數的塊)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM