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。

你可能感兴趣的:(iOS知识笔记)