iOS开发-网络篇-简单总结
一、网络测试
在开发的过程中,会进行网络连接的一些测试,以便我们清楚开发的App是否能够正常的连接到网络。怎样进行测试?
首先我们先来介绍一款第三方软件Reachability-master。Reachability 英文译为 能达到性,这款第三方能够帮助我们轻松的进行网络连接的测试。
第三方相关内容剖析
NotReachable = 0, 没有网
ReachableViaWiFi = 2, wifi
ReachableViaWWAN = 1 2G/3G
//1.根据主机名判断网络是否连接
+(instancetype)reachabilityWithHostName:(NSString*)hostname;
//2.开启监听
-(BOOL)startNotifier;
//3.停止监听
-(void)stopNotifier;
//4.获取当前的网络状态
-(NetworkStatus)currentReachabilityStatus;
测试步骤如下:
1.根据主机名判断网络是否连接
2.注册网络监听
3.开启监听模式
4.停止监听
代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
//1.根据主机名判断网络是否连接 开发中一般都写百度 进行测试检测 因为百度不会死机、停止 会一直在线可用于测网
self.reach = [Reachability reachabilityWithHostName:@"http://192.168.1.87"];
//2.注册网络监听
//name:kReachabilityChangedNotification
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reachabilityChangeNotifi) name:kReachabilityChangedNotification object:nil];
//3.开启监听模式
[self.reach startNotifier];
}
-(void)reachabilityChangeNotifi
{
//对于几种不同的情况,进行返回信息
//此处传入一个当前的reachability的状态
//!**!注意:不稳定时可能会打印多次
switch (self.reach.currentReachabilityStatus) {
case NotReachable:
NSLog(@"没有网络连接");
break;
case ReachableViaWiFi:
NSLog(@"Wifi网络");
break;
case ReachableViaWWAN:
NSLog(@"移动蜂窝网");
break;
default:
NSLog(@"未知网络");
break;
}
}
//因为有通知 所以此处要设置delloc
-(void)dealloc
{
//1.把当前对象的所有通知删除
[[NSNotificationCenter defaultCenter]removeObserver:self];
//2.也可以对应一个一个删除
// [NSNotificationCenter defaultCenter]removeObserver:<#(nonnull id)#> name:<#(nullable NSString *)#> object:<#(nullable id)#>
//停止监听
[self.reach stopNotifier];
}