AFHTTPClient的异步回调模式

原创 2015年07月08日 20:20:49

以前第一个版本,ios的http都用的同步模式,在很多地方会导致线程阻塞,自己开发了一个简易的AFHTTPClient的异步回调模式。

 

回调的protocol:

@protocol MyAFNetworkingResponse <NSObject>

@required

-(void) MyHttpResponse:(NSString*)ret Type:(NSString*)strType returnData:(NSObject*)retData;

@end

 

AFHTTPClient的异步通信的实现类:

@interface MyAFNetworkingClient : AFHTTPClient

@property NSURL* mServerUrl;//http服务地址

@property id<MyAFNetworkingResponse> delegate;//这个最重要,回调的代理

 

//类初始化函数

- (id)init;

- (id)initWithBaseURL:(NSURL *)url;

 

/*然后是一堆实现的函数*/

.....

@end

 

然后viewcontroller中:

@interface MainViewController ()< MyAFNetworkingResponse>

@end

@implementation MainViewController

- (void)viewDidLoad {

    [super viewDidLoad];    

    //初始化

    self.mAFNetworkingHttpClient = [[MyAFNetworkingClient allocinit];

    self.mAFNetworkingHttpClient.delegate = self;

}

 

-(void) MyHttpResponse:(NSString*)ret Type:(NSString*)strType returnData:(NSObject*)retInfo{

    __weak MainViewController* wself = self;

    if ([strType isEqualToString:@"xxxx"]) {

         //某个具体http类型的,实现处理

    }else if([strType isEqualToString:@"xxxx"]){

          //某个具体http类型的,实现处理

    }

}

@end

AFNetWorking的实现原理

一:简介 在ios开发中,一般情况下,简单的向某个web站点简单的页面提交请求并获取服务器的响应,用xcode自带的NSURLConnection是能胜任的。但是,在绝大部分下我们所需要访问的w...
  • lcg910978041
  • lcg910978041
  • 2016年05月23日 22:03
  • 6233

iOS- 利用AFNetworking(AFN) - 实现文件断点下载

官方建议AFN的使用方法    1. 定义一个全局的AFHttpClient:包含有     1> baseURL     2> 请求     3> 操作队列 NSO...
  • u012894479
  • u012894479
  • 2015年03月16日 09:57
  • 1510

观察者模式(异步)

观察者模式(异步) 写在前面 因为最近比较流行的RxJava\MVC\MVP\MVVM都跟一个叫做观察者模式的东东比较接近,当然这是作为Java开发者最属性不过的设计模式,因为在Java中已经默认...
  • Dnnis
  • Dnnis
  • 2016年08月09日 15:12
  • 1623

Creo二次开发异步模式配置

异步模式是Creo二次开发的另外一种形式,被广泛应用于一些外部调用中。其配置过程如下: (1)      创建MFC程序(对话框程序都可以了) (2)      配置工程常规选项 (...
  • jh2005
  • jh2005
  • 2015年08月01日 06:31
  • 1317

异步非阻塞开发模式的优越性

同步阻塞开发模式: 1. 服务端启动监听; 2. 接收到一个客户端连接时,申请一个线程处理(可以是线程池,也能是直接启动线程。) 3.然后是接收请求(接受请求时,线程阻塞在这里),处理请求,如果需要...
  • u013150151
  • u013150151
  • 2013年12月15日 15:42
  • 2530

观察者模式的异步进度条

在 WinForm 中使用进度条展示长时间任务的执行进度 今天有人问道如何在 WinForm 程序中,使用进度条显示长时间任务的执行进度。 这个问题是一个开发中很常见的问题,正好也整理和总结一下。 ...
  • peien3382
  • peien3382
  • 2015年01月18日 11:25
  • 1254

观察者模式--Java设计模式

观察者模式定义:定义了对象之间的一对多的依赖,这样一来,当一个对象发生改变状态的时候,它的所有依赖者都会收到通知并自动更新。参考如下图: 观察者设计模式也叫发布-订阅模式。 也可以称作:出版者+订...
  • wdaming1986
  • wdaming1986
  • 2015年06月13日 11:23
  • 4195

C# Socket编程 服务端与客户端(四) 异步服务端

异步编写Socket服务端
  • qq5558809xv
  • qq5558809xv
  • 2016年11月18日 13:15
  • 798

Linux服务器--两种高效的并发模式(半同步/半异步模式、领导者/追随者模式)

并发模式是指I/O处理单元和多个逻辑单元之间协调完成任务的方法1、半同步/半异步模式1.1半同步/半异步模式【1】同步:程序完全按照代码顺序执行;异步:程序的执行需要由系统事件来驱动。常见的系统事件包...
  • yyc794990923
  • yyc794990923
  • 2017年07月29日 15:58
  • 291

ATM(异步传输模式)

1 信元 信元实际上就是分组,只是为了区别于X.25的分组,才将ATM的信息单元叫作信元 ATM的信元具有固定的长度,即总是53个字节. 其中5个字节是信头(Header) 48个字节是信息段. 信...
  • qq_20233867
  • qq_20233867
  • 2017年06月29日 07:40
  • 176
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AFHTTPClient的异步回调模式
举报原因:
原因补充:

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