【发布时间】:2016-12-26 04:03:29
【问题描述】:
let task = urlSession.dataTaskWithRequest(urlRequest)
{ (data, response, error) -> Void in
guard error == nil else {
print("Error while fetching remote rooms: \(error)")
return
}
下面的块可以替代上面的吗?
let task = urlSession.dataTaskWithRequest(urlRequest)
{ (data, response, error) -> Void in
if let myerror = error! {
print("Error while fetching remote rooms: \(myerror)")
return
}
【问题讨论】:
-
看看这个:Guard vs if-let
-
不管这是否重复,在
if let myerror = error!中强制解包error是完全错误的。可选绑定的要点是在使用之前测试一个值是否为nil。if let块将在某个时候崩溃。 -
你能推荐我正确的 if-let 代码吗?
-
if let data = data { print(data.count) } else if let error = error { print(error) }