检查iPhone是否已连接到互联网

时间:2011-05-25 18:40:14

标签: iphone objective-c ios reachability

如何快速检查iPhone是否已连接到互联网,快速...

...谢谢

3 个答案:

答案 0 :(得分:5)

查看Apple的Reachability类和this example app

答案 1 :(得分:2)

您应该尝试使用您认为适当的超时连接到服务器。在您确定连接尝试失败之前,切勿使用可访问性API,即使只是在您从NSURLConnection等处收到错误时也是如此。人。是一个暗示你没有连接到网络的人。在这种情况下,请使用Reachability API确定何时应该重试。

仅仅尝试连接可能会带来以前无法使用的网络接口。

答案 2 :(得分:1)

您可以使用以下代码检查swift中的互联网连接:

import SystemConfiguration

class Reachability: NSObject {

class func isConnectedToNetwork() -> Bool {
    var zeroAddress = sockaddr_in()
    zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
    zeroAddress.sin_family = sa_family_t(AF_INET)
    let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
        SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
    }
    var flags = SCNetworkReachabilityFlags()
    if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
        return false
    }
    let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
    let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
    return (isReachable && !needsConnection)
}

希望这会有所帮助!!

相关问题