ios – 检查互联网连接是否可用于swift

前端之家收集整理的这篇文章主要介绍了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中的网络可用性,您可以使用它.

原文链接:https://www.f2er.com/iOS/329740.html

猜你在找的iOS相关文章