我有关闭可能会返回错误.它看起来像:
session.dataTask(with: url) { (data, response, error) in
Run Code Online (Sandbox Code Playgroud)
接下来我想处理错误.我想使用guard语句来解包错误,如果存在,则显示alert和return函数.但我怎么能表现得像
guard !(let error = error) else { return }
Run Code Online (Sandbox Code Playgroud)
我不能.我可以检查nil然后再次解开错误,但那看起来很难看.或者我可以使用,如果让我解开,但为了错误检查,我更喜欢看守.那么,有没有办法很好地写下面的?
guard !(let error = error) else { return }
Run Code Online (Sandbox Code Playgroud)
不要打架子.
如果你想在大括号内使用unwrapped可选项if let
if let error = error {
print(error)
return
}
Run Code Online (Sandbox Code Playgroud)如果你想在使用大括号后使用unwrapped可选项guard let
guard let error = error else {
return
}
print(error)
Run Code Online (Sandbox Code Playgroud)如果(未包装)内容error无关紧要,请检查nil
guard error == nil else { ...
if error == nil { ...
Run Code Online (Sandbox Code Playgroud)该文件指出,当盖被称为:
data有一个值并且error是nil(如果请求成功),data isnil并且error有一个值(如果请求失败)。您真正感兴趣的是数据,在成功案例中,无论如何您都必须(以某种方式)解开它。
因此我会检查是否data有价值。如果失败,你就有一个错误。为避免强制展开,请使用 nil-coalescing 运算符:
session.dataTask(with: url) { (data, response, error) in
guard let data = data else {
// The request failed.
let message = error?.localizedDescription ?? "Unknown error"
// Present message ...
return
}
// The request was successful.
// Process data ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |