AAAA block
[self AAAA:^(BOOL isSuccessed, id userInfo, NSString *errorMsg) {
NSLog(@"AAAA: %d, userInfo: %@ errorMsg: %@", isSuccessed, userInfo, errorMsg);
}];
-(void)AAAA:(void(^)(BOOL isSuccessed,id userInfo,NSString *errorMsg))callback
{
__block NSMutableDictionary *_info = [@{} mutableCopy];
[self a001:
^(BOOL isSuccessed, id userInfo, NSString *errorMsg) {
NSLog(@"a001");
if (isSuccessed) {
[_info setObject:userInfo forKey:@"001info"];
}
else
{
[_info setObject:errorMsg forKey:@"001info"];
}
[self a002:^(BOOL isSuccessed, id userInfo, NSString *errorMsg) {
NSLog(@"a002");
if (isSuccessed) {
[_info setObject:userInfo forKey:@"002info"];
}
else
{
[_info setObject:errorMsg forKey:@"002info"];
}
[self a003:^(BOOL isSuccessed, id userInfo, NSString *errorMsg) {
NSLog(@"a003");
if (isSuccessed) {
[_info setObject:userInfo forKey:@"003info"];
}
else
{
[_info setObject:errorMsg forKey:@"003info"];
}
if (callback) {
callback(YES,@"userInfo", @"errorMsg");
}
}];
}];
}];
}
-(void)a001:(void(^)(BOOL isSuccessed,id userInfo,NSString *errorMsg))callback
{
NSLog(@"a001 inner");
if (callback) {
callback(YES,@"userInfo", @"errorMsg");
}
}
-(void)a002:(void(^)(BOOL isSuccessed,id userInfo,NSString *errorMsg))callback
{
NSLog(@"a002 inner");
if (callback) {
callback(YES,@"userInfo", @"errorMsg");
}
}
-(void)a003:(void(^)(BOOL isSuccessed,id userInfo,NSString *errorMsg))callback
{
NSLog(@"a003 inner");
if (callback) {
callback(NO,@"userInfo", @"errorMsg");
}
}
AAAA block的更多相关文章
- I.MX6 Linux udev porting
/*********************************************************************** * I.MX6 Linux udev porting ...
- iOS block
主要内容: block基本声明格式 block访问区域变量 block代替代理 block基本声明格式: ^(传入的参数){具体代码}; 注: Block实体开头是"^",接着是由 ...
- 小程序block标签配合if和else 和 动态修改标题栏
<block wx:if="{{aaaa}}"> <view>aaaa为 true,显示</view> </block> <b ...
- iOS 技术篇:从使用到了解block底层原理 (一)
1.概述 block : Object - C对于闭包的实现 . 闭包 = 一个函数(或是指向函数的指针) +该函数执行的外部的上下文变量(自由变量) 2.对block的理解 可以嵌套定义,定义 bl ...
- Objective-C中block的底层原理
先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...
- iOS 键盘添加完成按钮,delegate和block回调
这个是一个比较初级一点的文章,新人可以看看.当然实现这个需求的时候自己也有一点收获,记下来吧. 前两天产品要求在工程的所有数字键盘弹出时,上面带一个小帽子,上面安装一个“完成”按钮,这个完成按钮也没有 ...
- python中IndentationError: expected an indented block错误的解决方法
IndentationError: expected an indented block 翻译为IndentationError:预期的缩进块 解决方法:有冒号的下一行要缩进,该缩进就缩进
- JDBC Tutorials: Commit or Rollback transaction in finally block
http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...
- 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比
C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...
随机推荐
- 【费用流】BZOJ1877[SDOI2009]-晨跑
[题目大意] Elaxia每天从寝室出发跑到学校,保证寝室编号为1,学校编号为N. Elaxia的晨跑计划是按周期(包含若干天)进行的,由于他不喜欢走重复的路线,所以在一个周期内,每天的晨跑路线都不会 ...
- bzoj 4412: [Usaco2016 Feb]Circular Barn
4412: [Usaco2016 Feb]Circular Barn Description 有一个N个点的环,相邻两个点距离是1.点顺时针标号为1..N.每一个点有ci头牛,保证∑ci=N.每头牛都 ...
- python基础之模块,面向对象
hash 什么是hash? hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 为何用hash? hash值有三大特性: 1.只要传入的内容一样,得到的hash值必然一样 2.只要使 ...
- Java中的服务器与客户端的简单连接
Java中重点之一就是服务器与客户端的连接,因为是在同一台PC上,所以就设置服务器的地址为“localhost”,注意,我当时试着设置其他名称,但都不行,这个原因还请老司机告一下.另外还要注意,服务端 ...
- C#开源框架整理
Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Li ...
- [80Sec]深掘XSS漏洞场景之XSS Rootkit
顶80SEC的牛. 深掘XSS漏洞场景之XSS Rootkit[完整修订版] EMail: rayh4c#80sec.com Site: http://www.80sec.com Date: 2011 ...
- Git系列一之安装管理
1.Git安装部署 Git是分布式的版本控制系统,我们只要有了一个原始Git版本仓库,就可以让其他主机克隆走这个原始版本仓库,从而使得一个Git版本仓库可以被同时分布到不同的主机之上,并且每台主机的版 ...
- [Python爬虫] 之二十八:Selenium +phantomjs 利用 pyquery抓取网站排名信息
一.介绍 本例子用Selenium +phantomjs爬取中文网站总排名(http://top.chinaz.com/all/index.html,http://top.chinaz.com/han ...
- Linux内核源码情景分析-系统调用
一.系统调用初始化 void __init trap_init(void) { ...... set_system_gate(SYSCALL_VECTOR,&system_call);//0x ...
- 【云计算】OpenStack项目全面介绍
关于OpenStack孵化项目trove(DBaaS)之我见:http://blog.csdn.net/ddl007/article/details/17253751 OpenStack Trove将 ...