iOS AFNetworking 检测网络连接状态

三步完成网络的实时监测

1)AFNetworkReachabilityManager *networkManager =  [AFNetworkReachabilityManager sharedManager];
2) [networkManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusReachableViaWWAN || AFNetworkReachabilityStatusReachableViaWiFi:
            {
            }
            default:
                break;
        }


    }];
    
3) [networkManager startMonitoring];

判断iPhone是否联网状态
#import <SystemConfiguration/SystemConfiguration.h>
#import <netinet/in.h>


-(BOOL)isNetworkReachable{
    // Create zero addy
    struct sockaddr_in zeroAddress;
    bzero(&zeroAddress, sizeof(zeroAddress));
    zeroAddress.sin_len = sizeof(zeroAddress);
    zeroAddress.sin_family = AF_INET;
    
    // Recover reachability flags
    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
    SCNetworkReachabilityFlags flags;
    
    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
    CFRelease(defaultRouteReachability);
    
    if (!didRetrieveFlags)
    {
        return NO;
    }
    
    BOOL isReachable = flags & kSCNetworkFlagsReachable;
    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
    return (isReachable && !needsConnection) ? YES : NO;
}

posted @ 2015-08-20 16:32  【se7en】  阅读(612)  评论(0)    收藏  举报