![](/img/trans.png)
[英]cannot convert value of type '()' to expected argument '() -> 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.