ios开发联网状态的监控

来源:互联网 发布:mysql 命令 编辑:程序博客网 时间:2024/06/07 07:50

ios开发中需要根据联网的状态来进行一些不同的操作,比如下载,浏览图片等,所以需要得到当前网络的状态,

方法有两种,一种为使用AFNetworking,一种使用苹果官方提供的Reachability实例

1、AFNerworking:

AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];// 拿到单例

    [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {    // 实时监控,回调block

           NSLog(@"联网状态%zd",status);

    }];

    [mgr startMonitoring];   //  Starts monitoring for changes in network reachability status.



2、苹果官方提供https://developer.apple.com/library/ios/samplecode/Reachability/Reachabilty.zip点击打开链接

     下载包,将Reachability.h  和Reachability.m文件移到工程:

- (void)viewDidLoad {

    [superviewDidLoad];

 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];

       self.reachability = [Reachability reachabilityForInternetConnection];            // 接受网络改变通知,调用函数reachabilityChanged

    [self.reachability startNotifier];   // 开始接受通知

}

-(void)reachabilityChanged:(NSNotification *)note   //从通知里边取出

{

    Reachability* reachability = [note object];

    NetworkStatus netStatus = [reachability currentReachabilityStatus];

    switch (netStatus)

    {

        caseNotReachable:        {

            NSLog(@"没有网络连接");

            break;

        }

            

        caseReachableViaWWAN:        {

            NSLog(@"蜂窝网");

            break;

        }

        caseReachableViaWiFi:        {

            NSLog(@"wifi连接");

            break;

        }

    }

}



0 0
原创粉丝点击