AFNetworkReachabilityManager檢查網絡狀態
避免AFNetworkReachabilityManager檢查網絡狀態AFNetworkReachabilityStatusUnknown
1、開啟監聽 [[AFNetworkReachabilityManager sharedManager] startMonitoring];
2、[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusNotReachable:{
NSLog(@"無網絡");
break;
}
case AFNetworkReachabilityStatusReachableViaWiFi:{
NSLog(@"WiFi網絡");
break;
}
case AFNetworkReachabilityStatusReachableViaWWAN:{
NSLog(@"無線網絡");
break;
}
default:
break;
}
}];
#define kNetworkNotReachability ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus <= 0) //無網
如果啟動就去檢測 建議延時調用
eg:[self performSelector:@selector(login:) withObject:nil afterDelay:0.35f];
由于檢測網絡有一定的延遲,所以如果啟動app立即去檢測調用[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus 有可能得到的是status == AFNetworkReachabilityStatusUnknown;但是此時明明是有網的,建議在收到監聽網絡狀態回調以后再取[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus。