【发布时间】:2018-03-20 07:47:02
【问题描述】:
我对 typealias 有点不知所措,以下代码块工作正常,我想将其重构为使用 typealias。
NEVPNManager.shared().loadFromPreferences(completionHandler: vpnLoadHandler)
func vpnLoadHandler(_: (Error?)) -> Void {
}
我想创建一个类型别名:
typealias vpnCompleteClosure = (_: (Error?)) -> Void
func vpnLoadHandler(complete: @escaping vpnCompleteClosure) {
}
NEVPNManager.shared().loadFromPreferences(completionHandler: vpnLoadHandler)
不幸的是,这不再编译了:
无法转换 '(@escaping vpnCompleteClosure) -> ()' 类型的值 (aka '((Optional) -> ()) -> ()') 到预期的参数类型 '(错误?)-> 无效'
我错过了什么?
更新:
open func loadFromPreferences(completionHandler: @escaping (Error?) -> Swift.Void)
【问题讨论】:
-
可以加
loadFromPreferences(completionHandler: )签名 -
好的,我已经添加了,谢谢
-
类型别名是什么?您的
func vpnLoadHandler不接受闭包参数。
标签: swift closures type-alias