Fre*_*red 6 ios nsurlsession swift nsurlsessiondatatask urlsession
我的网络逻辑中有以下代码:
let task = urlSession.dataTask(with: request) { [weak self] (data, response, error) in
if let error = error {
if error.localizedDescription.contains("The request timed out") {
// request timeout stuff ...
} else {
// other errors
}
}
}
Run Code Online (Sandbox Code Playgroud)
字符串匹配localizedDescription不是好的代码实践。如何像 in 子句一样获取错误的类型catch?
您可以将其转换为 aURLError然后查看code:
if let error = error as? URLError {
switch error.code {
case .timedOut: ...
case .cannotFindHost: ...
default: ...
}
}
Run Code Online (Sandbox Code Playgroud)
if case或者,如果您只关心一种情况,则可以使用:
if let error = error as? URLError, case .timedOut = error.code {
...
}
Run Code Online (Sandbox Code Playgroud)
或者
if let error = error as? URLError, error.code == .timedOut {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4272 次 |
| 最近记录: |