再看AFNetworking框架
来源:互联网 发布:js新建一个json对象 编辑:程序博客网 时间:2024/06/06 00:04
做iOS开发的对AFNetworking这个三方库肯定不会陌生,这是一个网络请求的三方库,很多App中都使用了该库,当然也有公司内会自己封装一套网络请求的类。我在项目中使用的都是AFNetworking这个三方库来请求网络数据的。
在AF2.x的时候AF是基于NSURLConnection和新的NSURLSession进行封装的,在NSURLConnection被苹果弃用之后,AF就开始专门基于NSURLSession进行封装了。在AF2.x的时候我们常用的请求管理类是AFHTTPRequestOperationManager,而在AF3.x中我们使用的请求管理类是AFHTTPSessionManager。
利用AFNetworking监听全局网络状态:
在AFNetworking有一个类AFNetworkReachabilityManager,它是用来监听网络状态的,包括手机网络、WI-FI网络、无网络。我们可以对AFNetworking进行封装,然后利用我们自己的封装类对网络进行监听。这里假设我们封装类名为HttpTool。我们将HttpTool写成一个单例,并且给它一个属性network,network是BOOL类型,我们可以根据network的值来判断当前的网络状态。看代码:
+ (HttpTool *)sharedHttpToolObject{
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
httpTool = [[superallocWithZone:NULL]init];
[httpToolnetworkIsOrNot];
});
returnhttpTool;;
}
- (void)networkIsOrNot{
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManagersharedManager];
[manager startMonitoring];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
if (status ==AFNetworkReachabilityStatusNotReachable) {
NSLog(@"没有网络");
_network =NO;
}else{
NSLog(@"有网络");
_network =YES;
}
}];
}
在将HttpTool创建为单例的时候就调用了networkIsOrNot方法,在networkIsOrNot方法中根据是否有网络分别给_network这个属性进行赋值。在AppDelegate中的didFinishLaunchingWithOptions:方法中调用HttpTool的shareHttpTollObject方法。这样我们就能在任何地方通过HttpToll的network这个属性来判断当前的网络状态了。
- 再看AFNetworking框架
- 再看框架
- 再看DXUT框架
- 开源框架:AFNetworking
- AFNetworking框架使用浅析
- AFNetworking框架使用浅析
- AFNetworking框架的使用
- iOS网络框架 AFNetworking
- AFNetworking框架使用浅析
- AFNetworking框架使用浅析
- AFNetWorking框架简单使用
- AFNetworking通讯框架
- AFNetworking框架实现原理
- AFNetworking框架使用
- AFNetworking框架的组成
- AFNetworking第三方框架
- 实习记录5 再看fs框架
- 关于AFNetworking框架的使用
- attribute和property的区别
- iOS-字幕滚动
- HTTP与HTTPS
- Groovy中那些神奇注解之Memoized
- protobuff3 protoc命令
- 再看AFNetworking框架
- MySQL的日常使用
- 马拦过河卒 (sdut oj)
- 欢迎使用CSDN-markdown编辑器
- JAVA—Super和this关键字
- 基于How To Tango With Django 1.7的实践(5)——Models and Databases
- Android Things做一个简易相机
- 字符串的排列
- 从达标到卓越 —— API 设计之道