#importtypedef
NS_ENUM(NSInteger, NetWorkStateType) {
NetWorkStateUnKnow, // 未知網(wǎng)絡
NetWorkStateNot, // 沒有網(wǎng)絡
NetWorkStateWWAN, // 移動網(wǎng)絡
NetWorkStateWIFI // WIFI網(wǎng)絡
};
// 返回給controller枚舉block
typedef void(^NetWorkState)(NetWorkStateType type);
@interface NetWorkStateManager : NSObject
+ (NetWorkStateManager *)shareInstance;
// bloc屬性
@property (nonatomic, copy)NetWorkState block;
// 給controller的接口
- (void)reachabilityNetWorkState:(NetWorkState)netWorkState;
@end
#import "NetWorkStateManager.h"
@implementation NetWorkStateManager
+ (NetWorkStateManager *)shareInstance
{
static NetWorkStateManager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[NetWorkStateManager alloc] init];
});
return manager;
}
- (void)reachabilityNetWorkState:(NetWorkState)netWorkState
{
// block賦值
self.block = netWorkState;
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知網(wǎng)絡");
self.block(NetWorkStateUnKnow);
break;
case AFNetworkReachabilityStatusNotReachable: NSLog(@"沒有網(wǎng)絡");
self.block(NetWorkStateNot);
break;
case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"2G,3G,4G移動網(wǎng)絡");
self.block(NetWorkStateWWAN);
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"wifi網(wǎng)絡");
self.block(NetWorkStateWIFI);
break;
default:
break;
}
}];
[manager startMonitoring];
}
@end