没有互联网连接时,我正在测试我的应用程序行为。我只是在用户离线时得到错误。
我执行此代码,并在禁用Internet连接时在控制台中输出“可选数据(53161字节)”。
func getCountries(request: @escaping (Data?, Error?) -> Void) {
guard let url = url else { print("url is not valid")
return
}
session.dataTask(with: url) { (data, response, error) in
guard error == nil else {
request(nil, error)
return
}
print("data \(data)")
request(data, nil)
}.resume()
}
那我为什么在没有连接的情况下得到回应?
谢谢!
答案 0 :(得分:0)
尝试一下:
func getCountries(request: @escaping (Result<Data,Error>) -> Void) {
guard let url = URL(string: "yourURL") else {
print("url is not valid")
return
}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard error == nil else {
request(.failure(error!))
return
}
request(.success(data!))
}
task.resume()
}
要调用该函数,请执行以下操作:
getCountries() { result in
switch result {
case .failure(let error):
print(error.localizedDescription)
case .success(let success):
print(success)
}
}