抛出表达式类型'错误?'不符合'错误'迅捷3

时间:2017-11-23 07:13:48

标签: swift xcode8

将我的游乐场代码更改为Swift 3,Xcode建议更改

if let requestError = error {
    completion({throw (Error(code: requestError._code, description: requestError.localizedDescription, innerError: nil, informations:nil))})
}

if let requestError = error {
    completion({throw (Error(code: requestError._code, description: requestError.localizedDescription, innerError: nil, informations:nil)) as! Error})
}

但是我收到了这个错误。  '错误'不可转换为'错误&#39 ;;你的意思是使用' as!'迫使低垂?

1 个答案:

答案 0 :(得分:4)

Swift 3中的错误处理方式不同。错误现在是您遵循的协议,因此您定义错误情况然后抛出。

enum NetworkError: Error {
    case unauthorised
    case timeout
    case serverError
    case invalidResponse
}

guard let httpUrlResponse = response as? HTTPURLResponse else {
   throw NetworkError.invalidResponse
}

有关详细信息,请参阅Official Documentation