ios – 检查Internet连接可用性?

ios – 检查Internet连接可用性?,第1张

概述在开始与我的iPhone应用程序中的服务通信之前,我只需要检查互联网连接可用性.我使用 Swift 1.2和Xcode 6作为我的开发环境… 我刚刚做了一些研究,发现这个stackoverflow LINK在客观C. 因此,我刚刚尝试在SWIFT中找到类似的解决方案,并找到以下链接 https://coderwall.com/p/mhxbpq/checking-for-internet-conn 在开始与我的iPhone应用程序中的服务通信之前,我只需要检查互联网连接的可用性.我使用 Swift 1.2和Xcode 6作为我的开发环境…

我刚刚做了一些研究,发现这个stackoverflow LINK在客观C.

因此,我刚刚尝试在SWIFT中找到类似的解决方案,并找到以下链接

https://coderwall.com/p/mhxbpq/checking-for-internet-connection-availability

只是为了使事情变得容易,该链接中的内容如下:

import Foundationimport SystemConfigurationpublic class Reachability {  class func isConnectedToNetwork() -> Bool {      var zeroAddress = sockaddr_in(sin_len: 0,sin_family: 0,sin_port: 0,sin_addr: in_addr(s_addr: 0),sin_zero: (0,0))      zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))      zeroAddress.sin_family = sa_family_t(AF_INET)      let defaultRouteReachability = withUnsafePointer(&zeroAddress) {        SCNetworkReachabilityCreateWithAddress(nil,UnsafePointer(
if Reachability.isConnectedToNetwork() {    println("Haz Interwebz!")}  else{    println("Oh noes! No interwebz!!!")}
)).takeRetainedValue() } var flags: SCNetworkReachabilityFlags = 0 if SCNetworkReachabilityGetFlags(defaultRouteReachability,&flags) == 0 { return false } let isReachable = (flags & UInt32(kSCNetworkFlagsReachable)) != 0 let needsConnection = (flags & UInt32(kSCNetworkFlagsConnectionrequired)) != 0 return (isReachable && !needsConnection) ? true : false }}

并检查这样的连接可用性

Alamofire.request(.GET,"http://superrandomdomainnamethatisnotused.com/superrandompath").responseString {    (request,response,stringData,error) in    if let networkError = error {        if (networkError.code == -1009) {            println("No Internet \(error)")        }    }}

注意:要工作,需要向项目添加SystemConfiguration.framework(对于“链接框架和库”)….

所以….我的问题是,我对于iOS开发是相当新鲜的,不太确定使用这个逻辑来完成它是多么好可靠.该课程中的大部分内容完全不清楚,但是我做的小测试工作很好!

喜欢听到ios开发者对此有什么更多的兴趣.

解决方法 我今天早上正在为自己解决同样的问题,我觉得从Apple提供的这个“Reachability”示例代码根本不吸引我(主要是因为手动打开套接字和SystemConfiguration丑陋的API).

而不是这样,我试图使用Alamofire(我已经将其作为依赖关系)使用一个随机的不存在的URL进行简单的http连接,并检查我将收到的错误中的值.

NSURLErrorNotConnectedToInternet

该代码可以使用任何其他网络库重写.错误-1009对应于,这是更安心的方式说“你真的没有连接到互联网”.

另一件好事就是即使你放置了不存在的URL也是可行的,这意味着即使有Internet连接,你也不需要向任何服务器发送成功的http请求.

缺点是块中的代码异步执行,这可能会因您的需求而带来不便.

总结

以上是内存溢出为你收集整理的ios – 检查Internet连接可用性?全部内容,希望文章能够帮你解决ios – 检查Internet连接可用性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1094963.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存