swift基础判断网络连接
2016-06-16 01:22
477 查看
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
}
}
没网没有网的时候回弹出警告框
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" } } }
没网没有网的时候回弹出警告框
相关文章推荐
- Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/
- 外贸网络营销之基础:美国服务器 服务器租用
- SetConsoleOutputCP函数
- HTTP 和 HTTPS 的区别
- 外贸网络营销之基础:美国服务器 服务器租用 网络时代idc问答
- Tomcat 8.0.30配置https的步骤
- 外贸网络营销之基础:美国服务器 服务器租用
- 基于深度神经网络的语音识别方法
- Http协议与缓存
- Http状态码
- Postman发送带cookie的http请求
- linux网络编程----->线程死锁
- epoll详解(一)-- epoll在异步网络编程中的应用
- 关于网关和子网掩码的总结
- 想不通HTTPS如何校验证书合法性来看
- ASIHTTPRequest的使用——下载文件
- ASIHTTPRequest的使用——大文件断点续传
- ASIHTTPRequest的使用—— ASIDownloadCache缓存
- ASIHTTPRequest的使用—— NSHTTPCookie
- ASIHTTPRequest的使用——队列请求