第一步,需要引入Reachability.swift文件 网上自行百度
在AppDelegate中使用
//判断当前网络是否可用
func appDelegateCheckNetWork(){
do {
reachability = try Reachability.reachabilityForInternetConnection()
} catch {
print("appDelegate:Unable to create Reachability")
return
}
if reachability.isReachable() {
print("appDelegate:网络连接:可用")
netWorkIsAvailable = true
} else {
print("appDelegate:网络连接:不可用")
netWorkIsAvailable = false
}
// 检测网络类型
if reachability.isReachableViaWiFi() {
print("appDelegate:网络类型:Wifi")
} else if reachability.isReachableViaWWAN() {
print("appDelegate:网络类型:移动网络")
} else {
print("appDelegate:网络类型:无网络连接")
}
}
//开启网络监听
func monitorNetWork(){
reachability = try Reachability.reachabilityForInternetConnection()
reachability.whenReachable = { reachability in
self.netWorkIsAvailable = true
// 判断网络状态及类型
print("网络可用")
}
// 网络不可用时执行
reachability.whenUnreachable = { reachability in
self.netWorkIsAvailable = false
// 判断网络状态及类型
print("网络不可用")
}
do {
// 开始监听
try reachability.startNotifier()
} catch {
print("AppDelegate:Unable to start notifier")
}
}
方法二:viewController中调用
/************************* 网络状态监听部分(开始) *************************/
/**
通过消息自动监听网络改变
添加消息监听
*/
func NetworkStatusListener() {
// 1、设置网络状态消息监听
NSNotificationCenter.defaultCenter().addObserver(self, selector:"networkStatusChange", name: ReachabilityChangedNotification, object: nil);
// 2、获得网络Reachability对象
// Reachability必须一直存在,所以需要设置为全局变量
conn = Reachability.reachabilityForInternetConnection()!;
// 3、开启网络状态消息监听
conn!.startNotifier();
}
func networkStatusChange() {
checkNetworkStatus();
}
/**
移除消息通知
*/
deinit {
// 关闭网络状态消息监听
conn!.stopNotifier();
// 移除网络状态消息通知
NSNotificationCenter.defaultCenter().removeObserver(self);
}
/**
主动检测网络状态
*/
func checkNetworkStatus() {
let reachability = Reachability.reachabilityForInternetConnection() // 准备获取网络连接信息
if reachability!.isReachable() { // 判断网络连接状态
print("网络连接:可用")
if reachability!.isReachableViaWiFi() { // 判断网络连接类型
print("连接类型:WiFi")
} else if reachability!.isReachableViaWWAN() {
print("连接类型:移动网络")
}
}else{
print("网络连接:不可用")
print("连接类型:没有网络连接")
}
}
/********************* 网络状态监听部分(结束) *************************/
</pre><p></p><pre name="code" class="html">
监听网络变化参考:
http://blog.csdn.net/json_vip/article/details/51754881
http://blog.csdn.net/zhang5690800/article/details/51995716