1.声明变量及方法
<span style="font-size:14px;">@interface AppDelegate()
{
@private
Reachability *hostReach;
}
- (void) reachabilityChanged: (NSNotification* )note;//网络连接改变
- (void) updateInterfaceWithReachability: (Reachability*) curReach;//处理连接改变后的情况
@end</span>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
//开启网络状况的监听
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
hostReach = [[Reachability reachabilityWithHostName:@"www.apple.com"] retain];//可以以多种形式初始化
[hostReach startNotifier]; //开始监听,会启动一个run loop
[self updateInterfaceWithReachability: hostReach];
//.....
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
//监听到网络状态改变
- (void) reachabilityChanged: (NSNotification* )note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
[self updateInterfaceWithReachability: curReach];
}
//处理连接改变后的情况
- (void) updateInterfaceWithReachability: (Reachability*) curReach
{
//对连接改变做出响应的处理动作。
NetworkStatus status = [curReach currentReachabilityStatus];
if(status == kReachableViaWWAN)
{
printf("\n3g/2G\n");
}
else if(status == kReachableViaWiFi)
{
printf("\nwifi\n");
}else
{
printf("\n无网络\n");
}
}