didFinishLaunchingWithOptions中增加如下代码
//使用通知中心监听kReachabilityChangedNotification通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
//获取指定站点的Reachability对象
reach=[Reachability reachabilityWithHostName:@"www.baidu.com"];
//让Reachability对象开启被监听状态
[reach startNotifier];
-(void)reachabilityChanged:(NSNotification *)note
{
NSLog(@"进来了");
//通过通知对象获取被监听的Reachability对象
Reachability *currReach=[note object];
//获取Reachability对象的网络状态
NetworkStatus status=[currReach currentReachabilityStatus];
if (status==NotReachable) {
[self showAlert:@"www.baidu.com"];
}else{
[self showAlert:@"网络正常"];
}
}
我做这块遇到的问题就是一开始通知无论怎么都不执行,从网上看了才知道
Reachability *reach要设置为全局对象,我认为不把它设置为全局对象,它可能出了该函数就被系统释放了!!!
本文详细介绍了如何在iOS应用中使用Reachability类实时监测网络状态,并通过通知中心接收网络变化通知,实现应用的网络状态感知。重点突出在`didFinishLaunchingWithOptions`方法中初始化Reachability对象及监听网络变化的过程。
439

被折叠的 条评论
为什么被折叠?



