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(@"现在暂时无网络");
}
}