对于Swift 4/xcode:
我在互联网上搜索了这个问题的解决方案,但我还没有找到一个涵盖所有基础的明确、全面的答案。有几个Stack在一定程度上回答了这个问题,包括快速的具体答案,如这些或AshleyMills可达性,但许多答案都很陈旧,而且不全面。
if doesHaveInternetConnection{
//run loading data functions
}else{
//don't run loading data functions
}难道不是这样做的吗?如果没有,有什么更好的方法来处理这个问题呢?
发布于 2017-11-01 02:54:32
这里是发出网络请求时URLError的列表。在列表中,有一个名为notConnectedToInternet的枚举值。当您发出网络请求而失败时,请查看错误代码,以找出它是否由于没有连接或其他原因。
或者,您也可以在服务器上托管一个health-check端点.在提出任何请求之前,向这个终点提出请求.如果请求成功,您可以放心,有互联网连接。不过,我强烈建议采用第一种选择。
示例
注意:下面的代码在Swift 3中。
URLSession.shared.dataTask(with: *URLRequest*) { (data, response, error) -> Void in
if error != nil {
if let e = error as? URLError, e.code == .notConnectedToInternet {
//Not connected to internet
} else {
//Some other error
}
} else {
//The request was successful
}
}.resume()https://stackoverflow.com/questions/47047438
复制相似问题