iOS——AFN监控网络

来源:互联网 发布:广州软件开发公司排名 编辑:程序博客网 时间:2024/05/15 11:40

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
原创粉丝点击