博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS block dispatch_queue
阅读量:7116 次
发布时间:2019-06-28

本文共 1114 字,大约阅读时间需要 3 分钟。

hot3.png

研究了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回到主线程。

这样就完整了来了一次请求和接受数据。

哇 哦。

转载于:https://my.oschina.net/sunqichao/blog/87110

你可能感兴趣的文章
PHP字符串的总结
查看>>
百度搜索附近加盟店等基于LBS云搜索功能的实现
查看>>
89. Gray Code
查看>>
差分约束心得
查看>>
ZooKeeper开发手册中文翻译(转)
查看>>
HDU 5805
查看>>
leetcode shell
查看>>
JavaScript的第一次小结
查看>>
Google Maps 如何接地气地本地化 “两轮车模式” ?
查看>>
转-Java基础全面解析——Java语言基础
查看>>
模糊查询json数组
查看>>
8.使用下拉列表框进行多选
查看>>
不安装执行apk的方法(参考地址)
查看>>
oracle中的递归查询(start with/connect by)
查看>>
Xenserver命令大全
查看>>
随堂练习_电梯
查看>>
自动化测试基础篇--Selenium cookie操作
查看>>
再思linux内核在中断路径内不能睡眠/调度的原因(2010)【转】
查看>>
TCP/UDP区别&&心跳包机制【转】
查看>>
通信协议中的转义字符【转】
查看>>