AFNetworking感觉也是一个比较好的第三方的框架,而且现在也支持ARC,所以学习这个还是挺有必要的,接下来的内容基本上都是翻译自"iOS and OSX Network Programming Cookbook"这本书的内容,这里讲的AFNetworking是2.0版本,所以如果你用的是比较高的版本要进行适当的改变你的代码。
检查网络连接的类型和变化
通过使用AFNetworking 自带的AFNetworkReachabilityManager类,可以使得我们能够比较容易的在设备上判断网络的链接类型,且在网络类型的时候通知我们。
你需要准备的就是下载AFNetworking 并且添加到你的工程当中,然后你需要导入AFNetworking的头文件。
接下来就是我们判断网络类型的主要代码:
AFNetworkReachabilityManager *reachability = [AFNetworkReachabilityManager shareManager];
[reachability setReachabilityStatusChangeBlock:^(AFNetworkReacabilityStatus status{
switch (status){
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"----------------WWAN");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"----------WIFI");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"--------Not Reachable");
default:
break;
}
}];
由于AFNetworkReachabilityManager类是通过单例设计模式实现的,所以我们参考shareManager方法来实现AFNetworkReachabilityManager实例。然后我们调用setReachabilityStatusChangeBlock:方法,通过调用代码块来设置基本的网络状态,如此这般我们就能很容易的监视网络状态的变化。
AFNetworkReachabilityManager类还有其他的类和特性:
reachable : 这个属性返回一个布尔值,判断指定的网络是否可用
reachableVinWWAN:返回一个布尔值,判断指定网络是否为WWAN
reachableViaWiFI:返回一个布尔值,判断指定网络是否为Wi-Fi