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, 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"
}
}
}
没网没有网的时候回弹出警告框