swift基础判断网络连接

来源:互联网 发布:手机人工智能有什么用 编辑:程序博客网 时间:2024/06/09 20:34


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, 0, 0, 0, 0, 0, 0))        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) == false {            return false        }                let isReachable = flags.contains(.Reachable)        let needsConnection = flags.contains(.ConnectionRequired)                return isReachable && !needsConnection    }    }

class ViewController: UIViewController {    @IBOutlet weak var checkingLabel: UILabel!        override func viewDidAppear(animated: Bool) {        checkConnectivity()    }    override func viewDidLoad() {        super.viewDidLoad()    }    override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()    }    func checkConnectivity() {        print(Reachability.isConnectedToNetwork(), terminator: "")        if Reachability.isConnectedToNetwork() == false {            let alert = UIAlertController(title: "Alert", message: "Internet is not working", preferredStyle: UIAlertControllerStyle.Alert)            self.presentViewController(alert, animated: false, completion: nil)            let okAction = UIAlertAction(title: "Retry", style: UIAlertActionStyle.Default) {                UIAlertAction in                alert.dismissViewControllerAnimated(false, completion: nil)                //self.checkConnectivity()            }            alert.addAction(okAction)            checkingLabel.text = ""        }        else {            checkingLabel.text = "Connected"        }    }}

没网没有网的时候回弹出警告框

0 0
原创粉丝点击