IT虾米网

网络状态检测Reachability详解

luoye 2018年06月24日 手机开发 386 0
#import "Reachability.h" 
 
 
@interface JRViewController ()<UIActionSheetDelegate> 
@property(nonatomic,strong)  Reachability * reach; 
@end 
 
 
@implementation JRViewController 
 
 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
     
 
//监听Reachability.h———————————————————————————————————————————————————————————————— 
     
    // 
    [self monitorNetState:nil]; 
     
    // 开启通知监控,实时等待 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(monitorNetState:) name:kReachabilityChangedNotification object:nil];//object是指监听谁发出的通知,在这里可以写self.reach,也可以写nil 
    [self.reach startNotifier];//一定要写开始监控 
     
} 
 
 
 
//********************************************** 
//reachability监听———————————————————————————————————————————————————————————————— 
- (void) monitorNetState:(NSNotification *)noti 
{ 
    NSLog(@"%@", noti); 
    if(self.reach==nil)// 
    { 
        self.reach=[Reachability reachabilityForInternetConnection];//不是单例 
         
         
        //他还有两个子类 
//        ReachableViaWiFi; 
//        ReachableViaWWAN; 
         
 
 
    } 
     
    if(self.reach.currentReachabilityStatus!=NotReachable) 
    { 
         
        if (self.reach.currentReachabilityStatus==ReachableViaWiFi) 
        { 
            NSLog(@"wifi"); 
        } 
        else 
        { 
            NSLog(@"3g/2g"); 
        } 
    } 
    else 
    { 
        NSLog(@"没有网"); 
    } 
} 
 
 
//移除监听 
-(void)dealloc{ 
    //reachability需要自己停止 
    [self.reach stopNotifier]; 
     
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
} 
 
 
@end 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

NSXMLParser 解析xml详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。