OC 30 day
今天在看接手的OC专案时,看到一个测试网路状态的方法 Reachability(OC),因为我刚嘅使接触OC,在这之前我在开发swift时,都是利用NWPathMoniitor来测试网路状态:
NWPathMoniitor(swift)
Network framework 是在iOS 12 新推出的 framework。其中的 NWPathMonitor 将可帮我们更简单地侦测网路连线的状态。可以看看彼得潘的文章。
但是这次看专案是利用Reachability,为了看懂程序码,让我们来了解什麽是Reachability。
在这之前,可以看一下stackoverflow。
Reachability是网络助手实用程序类,它用於获取有关连接状态的各种信息。
Reachability用於查询网络状态,并监听在连接状态更改时的通知。
这个做法很常见。 在我的项目中,我只有1个下载管理器类的实例,而该类只有Reachability的唯一活动实例。
通常要做的是在下载管理器中建立一个方法,该方法告诉我是否存在连接。
对Reachability有大致上的理解後,我们来尝试实做看看。
Reachability示例应用程序演示了如何使用系统配置框架来监视iOS设备的网络状态。 特别是,它演示了如何知道何时可以路由IP,以及何时将通过EDGE或3G等无线广域网(WWAN)接口路由流量。 注意:Reachability无法告诉您的应用程序是否可以连接到特定主机,只能告诉您可能允许连接的接口可用,以及该接口是否为WWAN。 要了解何时以及如何使用可达性,请阅读“网络概述”。
接着你可以下载官方的范例文件,并直接使用 Reachability.m 与 Reachability.h 的文件。
详细使用方法可以参考Nick’s journey on iOS.写的文章
//预留网络监控
- (void)net_control{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
NSString *remoteHostName = @"www.apple.com";
self.hostReachability = [Reachability reachabilityWithHostName:remoteHostName];
[self.hostReachability startNotifier];
}
/*!
* Called by Reachability whenever status changes.
*/
- (void) reachabilityChanged:(NSNotification *)note
{
Reachability *reach=[note object];
if([reach currentReachabilityStatus]==ReachableViaWiFi){
NSLog(@"正在使用WiFi");
}else if([reach currentReachabilityStatus]==ReachableViaWWAN){
NSLog(@"正在使用移动数据");
}else{
NSLog(@"当前网络不可用");
}
}
<<: 敏捷方法或框架-极限编程(XP)提供了最多的程序开发实务
本文同步更新於blog 情境:让我们试着作一个摩斯电码机,它会将一般句子转成摩斯电码的表示 首先...
从上图可知衣装仪态的重要性。 其实,稽核专业的形象,一直是我所追求的目标,即使我在资安顾问的年资已...
昨日DNS/DDNS/Port Forwards (一)中提到固定实体IP的设定,但如果你用的是浮动...
正文 弄完资料库後,花了一点时间的写了这几只API。 主要的routing分成 API/[Contr...
纪录时间:2022/04/16 【前言】 在现在,每人基本都有属於自己的一只智慧型手机,各式各样的A...