Check for internet connection with Swift

前端 未结 21 1950
别跟我提以往
别跟我提以往 2020-11-22 05:59

When I try to check for an internet connection on my iPhone I get a bunch of errors. Can anyone help me to fix this?

The code:

import Foundation
impo         


        
21条回答
  •  爱一瞬间的悲伤
    2020-11-22 06:10

    This is my version. Essentially it doesn't bring anything new. I bound it to UIDevice.

    import UIKit
    import SystemConfiguration
    
    extension UIDevice {
    
        open class var isConnectedToNetwork: Bool {
            get {
                var zeroAddress = sockaddr_in()
                zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
                zeroAddress.sin_family = sa_family_t(AF_INET)
    
                guard
                    let defaultRouteReachability: SCNetworkReachability = withUnsafePointer(to: &zeroAddress, {
                        $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
                            SCNetworkReachabilityCreateWithAddress(nil, $0)
                        }
                    }),
                    var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags() as SCNetworkReachabilityFlags?,
                    SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags)
                    else { return false }
    
                return flags.contains(.reachable) && !flags.contains(.connectionRequired)
            }
        }
    
    }
    
    print("Network status availability: " + ( UIDevice.isConnectedToNetwork ? "true" : "false" ))
    

提交回复
热议问题