当Alamofire没有网络连接时,如果出现错误,我应该如何处理?我尝试检查数据是否为零,但它不起作用。
下面是我如何使用Alamofire
Alamofire.request(.POST, REGISTER_URL, parameters: parameters, encoding: .JSON, headers: getAuthenticationHeader()).response { (request, response, data, errorType) -> Void in
let resultObject: APIResults = APIResults(JSONDecoder(data!));
let responseCode: Int = Int(resultObject.code!)!;// THIS CRASHES WHEN THERE IS NO INTERNET CONNECTION
if (responseCode == 200) {
available = true;
}
finished = true;
}
7条答案
按热度按时间lnlaulya1#
Swift 3解决方案
假设您有一个
Error
示例,则可以执行以下操作:您只需将
error
转换为URLError
即可。这是因为URLError
实现了Error
协议。下面是一段引用自apple文档的话,以供参考:URLError:描述URL错误域中的错误。
一旦你有了一个
URLError
示例,你就可以简单地比较它的code
属性,它是一个URLError.Code
枚举,和任何相关的枚举情况(在我们的例子中是URLError.Code.notConnectedToInternet
)。jaql4c8m2#
这对我在Swift2.x中有效
owfi6suc3#
我同意@Shripada的观点。首先你应该使用可达性来检查连接。这里有一个Swift库:https://github.com/ashleymills/Reachability.swift
此外,您可以使用Alamofire验证方法之一:
a11xaf1n4#
检查是否存在Internet连接的其他方法
dxpyg8gm5#
详细信息
准备
编辑信息plist中的NSAppTransportSecurity:
编码:
样品1(需要Alamofire pod)
使用网络可访问性
样品2(需要Alamofire pod)
样品3(无第三方库)
更多信息:How to use SCNetworkReachability in Swift
样品4(需要Reachability.swift pod)
ki1q1bka6#
雨燕5.0
您可以使用NSURL相关错误代码进行检查
或者你可以检查代码
您可以在开发人员站点上查看其他代码。https://developer.apple.com/documentation/foundation/1508628-url_loading_system_error_codes
0ejtzxu17#
它在swift 5中工作