AFNetworkReachabilityManager檢測網絡狀態

    // 如果要檢測網絡狀態的變化,必須用檢測管理器的單例的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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章