iOS——AFN监控网络

1、导入AFNetworking文件;


2、在AppDelegate.h中添加属性:

@property (nonatomic, assign) BOOL canRequest; // 默认是NO



3、在需要用到网络监控的地方导入头文件并添加属性:

#import "AFNetworking.h"

#import "AppDelegate.h"

@property (strong,nonatomic)AppDelegate *delegate;


4、在viewdidLoad中写方法

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    
    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    /*
     AFNetworkReachabilityStatusUnknown          = -1,
     AFNetworkReachabilityStatusNotReachable     = 0,
     AFNetworkReachabilityStatusReachableViaWWAN = 1,
     AFNetworkReachabilityStatusReachableViaWiFi = 2,
     */
    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        
        switch (status) {
            case AFNetworkReachabilityStatusNotReachable:
                NSLog(@"没有网络连接");
                self.delegate.canRequest = NO;
                break;
            case AFNetworkReachabilityStatusReachableViaWWAN:
                NSLog(@"手机自带网络");
                self.delegate.canRequest = YES;
                break;
            case AFNetworkReachabilityStatusReachableViaWiFi:
                NSLog(@"wifi网络");
                self.delegate.canRequest = YES;
                break;
            case AFNetworkReachabilityStatusUnknown:
                NSLog(@"未知网络");
                self.delegate.canRequest = NO;
                break;
        }
        
    }];
    
    [manager startMonitoring];
    
    // Do any additional setup after loading the view, typically from a nib.
}


5、在需要判断网络的地方调用方法,比如:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    if (self.delegate.canRequest) {
        NSLog(@"可以数据交互");
//        AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
//        [session GET:<#(nonnull NSString *)#> parameters:<#(nullable id)#> progress:<#^(NSProgress * _Nonnull downloadProgress)downloadProgress#> success:<#^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject)success#> failure:<#^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)failure#>]
    }else {
        NSLog(@"现在暂时无网络");
    }
    
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值