// 如果要檢測網絡狀態的變化,必須用檢測管理器的單例的startMonitoring
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
// 檢測網絡連接的單例,網絡變化時的回調方法
[[AFNetworkReachabilityManager sharedManager]setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"%ld",(long)status);
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"網絡錯誤");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"沒有連接網絡");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"手機自帶網絡");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"wifi");
break;
}
}];
/* AFNetworkReachabilityStatusUnknown = -1,
AFNetworkReachabilityStatusNotReachable = 0,
AFNetworkReachabilityStatusReachableViaWWAN = 1,
AFNetworkReachabilityStatusReachableViaWiFi = 2,
*/
注意:如果啓動就去檢測 建議延時調用
eg:[self performSelector:@selector(login:) withObject:nil afterDelay:0.35f];
由於檢測網絡有一定的延遲,所以如果啓動app立即去檢測調用[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus 有可能得到的是status == AFNetworkReachabilityStatusUnknown;但是此時明明是有網的,建議在收到監聽網絡狀態回調以後再取[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus。