一:蘋果官方提供的Reachability示例程序的監(jiān)測
導(dǎo)入Reachability.h和Reachability.m文件
/**監(jiān)控網(wǎng)絡(luò)*/
@property(nonatomic,strong)Reachability*reachability;
//監(jiān)聽通知
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(getNetworkStatus)name:kReachabilityChangedNotificationobject:nil];
//開始監(jiān)控網(wǎng)絡(luò)
self.reachability= [ReachabilityreachabilityForInternetConnection];
[self.reachability startNotifier];
//?只要網(wǎng)絡(luò)狀態(tài)改變帽馋,就會調(diào)用?這個方法查看當前的網(wǎng)絡(luò)
- (void)getNetworkStatus
{
if([ReachabilityreachabilityForLocalWiFi].currentReachabilityStatus!=NotReachable) {
NSLog(@"wifi");
}elseif([ReachabilityreachabilityForInternetConnection].currentReachabilityStatus!=NotReachable) {
NSLog(@"蜂窩網(wǎng)絡(luò)");
}else{
NSLog(@"無網(wǎng)絡(luò)連接");
}
}
需要注意在結(jié)束監(jiān)聽時要移除網(wǎng)絡(luò)監(jiān)測的通知:
- (void)dealloc
{
[[NSNotificationCenterdefaultCenter]removeObserver:self];
[self.reachability stopNotifier];
self.reachability=nil;
}
二:AFNetworking中的網(wǎng)絡(luò)狀態(tài)監(jiān)測
導(dǎo)入AFNetworking框架...
//開始網(wǎng)絡(luò)監(jiān)控
AFNetworkReachabilityManager*mgr = [AFNetworkReachabilityManager sharedManager];
[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
//在block中拿到當前網(wǎng)絡(luò)狀態(tài)
NSLog(@"-----當前的網(wǎng)絡(luò)狀態(tài)---%zd", status);
}];
[mgr startMonitoring];
status的值?與網(wǎng)絡(luò)狀態(tài)的對應(yīng)如下:
//當前無網(wǎng)絡(luò)
AFNetworkReachabilityStatusNotReachable=0,
//蜂窩網(wǎng)絡(luò)
AFNetworkReachabilityStatusReachableViaWWAN =1,
//wifi
AFNetworkReachabilityStatusReachableViaWiFi =2,