HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 检查互联网连接是否可用于swift大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Check for internet connection with Swift10个
有没有一个苹果框架包来检测是否有一个互联网连接?目前,当我的应用程序尝试在没有互联网连接的情况下对用户的位置进行地理位置分配
/*inside LOCATIOnManager didupdateLOCATIOns method*/
var currentLOCATIOn:CLLOCATIOn? = LOCATIOns[0] as? CLLOCATIOn
geocoder = CLGeocoder()
//Crashes on line below when there isn't an internet connection
//Need to add function to check if internet connection is live 
//Before running reverseGeocodeLOCATIOn
geocoder.reverseGeocodeLOCATIOn (currentLOCATIOn,handleGeocodE)

我有点新的快速和ios编程 – 我的道歉.

解决方法

不是一个完整的网络检查库,但我发现了 this简单的方法来检查网络可用性.我设法把它翻译成Swift,并在这里是最终的代码.
import Foundation
import SystemConfiguration

public 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($0)).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
    }

}

它适用于3G和WiFi连接.我也将其上传到我的Github一个工作的例子.如果您正在寻找一种简单的方法来检查纯粹在Swift中的网络可用性,您可以使用它.

大佬总结

以上是大佬教程为你收集整理的ios – 检查互联网连接是否可用于swift全部内容,希望文章能够帮你解决ios – 检查互联网连接是否可用于swift所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。