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)) } 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" } } }没网没有网的时候回弹出警告框
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。