解析AFNetWorking   网络框架(一)

原创 2013年12月03日 22:52:38

一直忙于工作,需要资料在网上找到就转发在博客里,今天自己也贡献一点微薄的力量,以备以后自己查阅或需要的人做个参考,文采不好,请见谅。

 这个版本就是最近的,项目中用到从官网下载的。

先简单看一下AFNetworking的文件结构。


从这个文件结构中我们可以看到AFNetWorking包含:NSURLConnection,NSURLSession,Security,Reachability,Serialization,UIKit+AFNetworking六大模块,其中AFNetWorking.h是AFNetworking框架的头文件,这个跟xcode里的一些框架结构完全一样,AFNetWorking.h里包含了各模块的头文件如下:

#import <Foundation/Foundation.h>

#import <Availability.h>


#ifndef _AFNETWORKING_

    #define _AFNETWORKING_


    #import "AFURLRequestSerialization.h"

    #import "AFURLResponseSerialization.h"

    #import "AFSecurityPolicy.h"

    #import "AFNetworkReachabilityManager.h"


    #import "AFURLConnectionOperation.h"

    #import "AFHTTPRequestOperation.h"

    #import "AFHTTPRequestOperationManager.h"


#if ( ( defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) || \

      ( defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 ) )

    #import "AFURLSessionManager.h"

    #import "AFHTTPSessionManager.h"

#endif


#endif /* _AFNETWORKING_ */

以后写架构可以借鉴之类写法。

AFNetwoking是基于NSURLConnection实现的,他对NSURLConnection做了扩展,方便程序猿们开发,NSURLConnection的group里包含的文件如下:


AFURLConnectionOperation类是NSOperation的子类,是为了方便实现多线程,AFHTTPRequestOperation又是AFURLConnectionOperation的子类,AFHTTPRequestOperationManager类基本封装了request的所有接口,通过此类可以实现所有的网络请求。

第二个Group是NSURLSession,后续再讲。

第三个Group是Security,是关于安全策略的,后续再讲。

第四个Group是Reachability,从字面意思可以理解,关于网络是否可用的一些接口,后续再讲。

第五个Group是Serialization,是将request序列化,后续再详解。

第六个Group是UIKit+AFNetworking,是对UIKit的一些类的扩展,详细接口如图:

今天先写到这里,明天再继续,争取每个文件,每个函数,每个细节都讲解清楚,如有说错希望指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

__IPHONE_OS_VERSION_MAX_ALLOWED理解

__IPHONE_OS_VERSION_MAX_ALLOWED编译环境判断,判断当前开发时使用的sdk的版本。 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 5000...

AFNetworking 3.0 使用详解和源码剖析

AFNetworking 3.0 源码详解 整体架构: AFNetworking 3.0 实现完全基于NSURLSessionTask进行封装,NSURLSessionTask 是苹果在iOS7 推...

xUtils 框架使用文档

  • 2016-03-04 22:01
  • 152KB
  • 下载

开源项目之Android Afinal框架

项目如图: 本文参考网络! Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过Afinal的ioc框架...

AngularJS(4)——ionic 框架下实现 Localstorage本地存储

前言:       我们前台用的是ionic+angularjs,做的是混合模式移动应用。最近有一个需求是,我在页面A上面滑动的时候,跳入页面B,页面B需要加载页面A的数据,这样的页面传值如何实现呢...

Android 的网络编程(15)-Http JSon服务器端和客户端通信

Android  Http JSon服务器端和客户端通信   服务器端: package com.web.servlet; import java.io.IOException; import j...

多线程   下载网络图片主线程实现

1.加载视图层次结构的方法  1.LoadView的方法 用纯代码开发的时候 简历视图层次结构, 与 Storard &Xib 是等价的 一旦实现了此方法,SB&XIB无效 -...

Caffe实例开发学习笔记。——网络配置文件 Layer参数详解——

(caffe/example/mnist/lenet_train_test.prototxt) 数据层 (caffe一般将数据做成数据库的形式,读取速度快,匹配cpu读取跟GPU运算) Ø so...

网络协议的综合思考  及 网络体系: OSI vs TCP/IP

一、通俗地说一下网络协议的目的、主要组成内容 网络协议的作用  类似于  交通管理系统。      一种交通管理系统的目的无非是两个: 1.提供基本能力:使人们能够把 物品(包括人在内)从一个 地点 ...

Pull 解析相同Tag标签的XML文件

需要解析的XML格式在这里, 有两个name相同的标签, 解析的时候,我们不能用 pull.next()方法,这个在4.0的时候, 并不能推到下一个标签。我们需要用pull.nextTag(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)