四菊卷、網(wǎng)絡(luò)環(huán)境判斷
?1、Reachability?類名
?(1)導(dǎo)入Reachability類名
?(2)初始化Reachability對(duì)象逗鸣,HostName?盡量用一個(gè)比較穩(wěn)定的網(wǎng)絡(luò)
?(3)添加觀察者板熊,接收網(wǎng)絡(luò)環(huán)境發(fā)生改變的通知
?(4)開始監(jiān)測(cè)
?(5)在通知中得到Reachability的對(duì)象
?2、AFNetWorking中AFNetworkReachabilityManager
?(1)導(dǎo)入類庫(kù)
?(2)創(chuàng)建檢測(cè)對(duì)象 類方法sharedManager
?(3)開始監(jiān)測(cè)
?(4)通過檢測(cè)對(duì)象?獲得檢測(cè)結(jié)果 回調(diào)方法(setReachabilityStatusChangeBlock:)
#import?"AppDelegate.h"
//1棍鳖、導(dǎo)入類名
#import?"Reachability.h"
#pragma mark---AFNetWorkingReachabilityManager--
//一、導(dǎo)入類庫(kù)
#import?"AFNetworking.h"
@interface?AppDelegate?()
@end
@implementation?AppDelegate
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary?*)launchOptions {
?//2碗旅、創(chuàng)建Reachability對(duì)象
?//HostName?盡量用一個(gè)比較穩(wěn)定的網(wǎng)站
?Reachability?*reachability = [Reachability reachabilityWithHostName:@"www.baidu.com"];
?//3渡处、添加觀察者 接收網(wǎng)絡(luò)環(huán)境變化的通知
?//kReachabilityChangedNotification?通知的名字
?//NetworkStatus?網(wǎng)絡(luò)環(huán)境的枚舉
?//-(NSString*)currentReachabilityString網(wǎng)絡(luò)環(huán)境的字符串
? ? [[NSNotificationCenter defaultCenter]addObserver:self?selector:@selector(change:)?name:kReachabilityChangedNotificationobject:nil];
?//4、開始監(jiān)測(cè)
?//-(BOOL)startNotifier;?開始通知監(jiān)測(cè)
?//-(void)stopNotifier;?結(jié)束通知監(jiān)測(cè)
[reachability?startNotifier];
#pragma mark---AFNetWorkingReachabilityManager---
?//二祟辟、初始化AFNetWorkingReachabilityManager對(duì)象
?AFNetworkReachabilityManager*reachabilityManager = [AFNetworkReachabilityManager sharedManager];
?//三医瘫、開始監(jiān)測(cè)
?//- (void)startMonitoring;開始監(jiān)測(cè)
?//- (void)stopMonitoring;停止監(jiān)測(cè)
[reachabilityManager?startMonitoring];
?//四、獲得監(jiān)測(cè)的網(wǎng)絡(luò)狀態(tài)
[reachabilityManager?setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatusstatus) {
?NSString?*result =?@"";
?switch?(status) {
?case?AFNetworkReachabilityStatusUnknown: {
result =?@"未知網(wǎng)絡(luò)";
?break;
? ? ? ? ? ? }
?case?AFNetworkReachabilityStatusNotReachable: {
result =?@"無網(wǎng)絡(luò)";
?break;
? ? ? ? ? ? }
?case?AFNetworkReachabilityStatusReachableViaWWAN: {
result =?@"蜂窩網(wǎng)絡(luò)";
?break;
? ? ? ? ? ? }
?case?AFNetworkReachabilityStatusReachableViaWiFi: {
result =?@"無線網(wǎng)";
?break;
? ? ? ? ? ? }
?default: {
?break;
? ? ? ? ? ? }
? ? ? ? }
?NSLog(@"%@",result);
? ? }];
?return YES;
}
- (void)change:(NSNotification?*)not{
?//not.object?得到Reachability對(duì)象
?//5旧困、得到通知中的Reachability對(duì)象 獲得網(wǎng)絡(luò)狀態(tài)
?Reachability?*reachability = not.object;
?NSLog(@"%@",[reachability?currentReachabilityString]);
?NSString?*status =?@"";
?switch(reachability.currentReachabilityStatus) {
?case?NotReachable:
status =?@"無發(fā)鏈接網(wǎng)絡(luò)";
?break;
?case?ReachableViaWWAN:
status =?@"移動(dòng)窩蜂網(wǎng)絡(luò)WWAN";
?break;
?case?ReachableViaWiFi:
status =?@"無線網(wǎng)WIFi";
?break;
?default:
?break;
? ? }
?NSLog(@"%@",status);
}