IOS block dispatch_queue
2013-10-21 19:43
411 查看
研究了3天的block使用,今天终于写出了自己的第一个block接口请求,完整的接口调用和定义,
首先在interface中用dispatch——queue来处理请求,然后通过block进行回调,
再在调用的时候处理block回调回来的数据就行了,非常的简洁,代码量减少很多,且效率极高,嘿嘿。
第一步定义要回调的block
typedef void (^getCommentList)(id data,BOOL succeed);
data就是回调时传过去的服务器数据,succeed表示是否成功,当然也可以定义其它参数了
第二步用dispatch来创建队列请求数据
dispatch_queue_t queue = dispatch_queue_create("GetCommentList", NULL);
dispatch_async(queue, ^(){
NSURL *url=[NSURL URLWithString:URL_GetComments];
ASIFormDataRequest *request=[[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setPostValue:uid forKey:UnloginView_id];
[request start];
NSMutableArray *content =[[request responseString] JSONValue];
block(content,YES);
});
dispatch_release(queue);
content就是请求回来的数据,经过解析后用block();回调。
第三步在需要创建请求的类里面实现这个方法
[MP_InterfaceShare getCommentList:str_mid block:^(id data, BOOL succeed) {
self.arr_objects = (NSMutableArray *)data;
dispatch_async(dispatch_get_main_queue(), ^(){
[self initWithControl];
[self stopTheHoldFire];
});
}];
这里的data就是刚才的content,如果需要处理UI更新的话就使用dispatch_get_main_queue回到主线程。
这样就完整了来了一次请求和接受数据。
哇 哦。
首先在interface中用dispatch——queue来处理请求,然后通过block进行回调,
再在调用的时候处理block回调回来的数据就行了,非常的简洁,代码量减少很多,且效率极高,嘿嘿。
第一步定义要回调的block
typedef void (^getCommentList)(id data,BOOL succeed);
data就是回调时传过去的服务器数据,succeed表示是否成功,当然也可以定义其它参数了
第二步用dispatch来创建队列请求数据
dispatch_queue_t queue = dispatch_queue_create("GetCommentList", NULL);
dispatch_async(queue, ^(){
NSURL *url=[NSURL URLWithString:URL_GetComments];
ASIFormDataRequest *request=[[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setPostValue:uid forKey:UnloginView_id];
[request start];
NSMutableArray *content =[[request responseString] JSONValue];
block(content,YES);
});
dispatch_release(queue);
content就是请求回来的数据,经过解析后用block();回调。
第三步在需要创建请求的类里面实现这个方法
[MP_InterfaceShare getCommentList:str_mid block:^(id data, BOOL succeed) {
self.arr_objects = (NSMutableArray *)data;
dispatch_async(dispatch_get_main_queue(), ^(){
[self initWithControl];
[self stopTheHoldFire];
});
}];
这里的data就是刚才的content,如果需要处理UI更新的话就使用dispatch_get_main_queue回到主线程。
这样就完整了来了一次请求和接受数据。
哇 哦。
相关文章推荐
- IOS block dispatch_queue 请求 接受数据 block 接口
- ios block dispatch_queue_t 使用demo.
- IOS block dispatch_queue 请求 接受数据 block 接口
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- [Cocoa]深入浅出Cocoa多线程编程之 block 与 dispatch queue
- iOS开发之GCD(2)API Dispatch Queue
- 聊聊iOS下block + GCD (Grand Central Dispatch)实现异步非阻塞
- gcd,block,dispatch queue
- iOS 开发之 GCD解析(block 如何被添加进 queue 中,以及 block 执行)
- iOS开发之GCD(3)Main Dispatch Queue/Global Dispatch Queue
- iOS-dispatch_queue_t
- iOS学习笔记-115.多线程14——NSOperationQueue和NSBlockOperation合用实现多线程
- iOS学习笔记5-GCDAsyncUdpSocket中的dispatch_queue_set_specific
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- iOS系统GCD学习(8):Dispatch Queue挂起恢复和目标指定
- iOS线程开发之--BLOCK & GCD(Grand Central Dispatch)
- 深入浅出 Cocoa 多线程编程之 block 与 dispatch queue
- IOS-usr/include-dispatch-queue.h
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- block与dispatch_queue