Я немного заблудился с 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 '((Необязательно) -> ()) -> ()') в ожидаемый тип аргумента '(Ошибка?) -> Пустота'
Что мне не хватает?
ОБНОВЛЕНИЕ:
open func loadFromPreferences(completionHandler: @escaping (Error?) -> Swift.Void)
loadFromPreferences(completionHandler: )
подпись - person deoKasuhal   schedule 20.03.2018func vpnLoadHandler
не принимает аргументов в пользу закрытия. - person Martin R   schedule 20.03.2018