[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的更多相关文章

  1. I.MX6 Linux udev porting

    /*********************************************************************** * I.MX6 Linux udev porting ...

  2. iOS block

    主要内容: block基本声明格式 block访问区域变量 block代替代理 block基本声明格式: ^(传入的参数){具体代码}; 注: Block实体开头是"^",接着是由 ...

  3. 小程序block标签配合if和else 和 动态修改标题栏

    <block wx:if="{{aaaa}}"> <view>aaaa为 true,显示</view> </block> <b ...

  4. iOS 技术篇:从使用到了解block底层原理 (一)

    1.概述 block : Object - C对于闭包的实现 . 闭包 = 一个函数(或是指向函数的指针) +该函数执行的外部的上下文变量(自由变量) 2.对block的理解 可以嵌套定义,定义 bl ...

  5. Objective-C中block的底层原理

    先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...

  6. iOS 键盘添加完成按钮,delegate和block回调

    这个是一个比较初级一点的文章,新人可以看看.当然实现这个需求的时候自己也有一点收获,记下来吧. 前两天产品要求在工程的所有数字键盘弹出时,上面带一个小帽子,上面安装一个“完成”按钮,这个完成按钮也没有 ...

  7. python中IndentationError: expected an indented block错误的解决方法

    IndentationError: expected an indented block 翻译为IndentationError:预期的缩进块 解决方法:有冒号的下一行要缩进,该缩进就缩进

  8. JDBC Tutorials: Commit or Rollback transaction in finally block

    http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...

  9. 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比

    C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...

随机推荐

  1. JavaScript的深拷贝与浅拷贝

    深拷贝和浅拷贝是在面试中经常遇到的问题.今天在这里总结一下. 深拷贝与浅拷贝的问题,涉及到JavaScript的变量类型,先来说说变量的类型,变量类型包括基本类型和引用类型. 基本类型:Undefin ...

  2. Android——多线程之Handler

    Why? 因为在Android系统中UI操作并不是线程安全的,如果多个线程并发的去操作同一个组件,可能导致线程安全问题.为了解决这一个问题, android制定了一条规则:只允许UI线程来修改UI组件 ...

  3. 源码安装python及paramikon的初步试用

    Auth: jin Date: 20140314 OS: CentOS release 5.5 (Final) 默认2.4版本 莫 1.download wget http://www.python. ...

  4. 使用hosts.allow和hosts.deny实现简单的防火墙

    说明:我建议学习防火墙只单一学习一种就够了,这种方式虽然简单和快速,但也有些不太灵活,所以如果要深入防火墙建议转iptables  一.背景简介 在Linux上多用iptables来限制ssh和tel ...

  5. 迁移11g Rac中OCR和VOTEDISK

    环境:OEL+oracle rac 11.2.0.3 迁移描述:将ocr和votedisk从+DATE上迁移到+OCR_VOTE上: 操作如下: [root@ora2 ~]$ /u01/app/11. ...

  6. NServiceBus入门:启程(Introduction to NServiceBus: Getting started)

    原文地址:https://docs.particular.net/tutorials/intro-to-nservicebus/1-getting-started/ 侵删. 最好的学习NService ...

  7. 推荐几个对象映射(Object-Object Map)的库

    在进行一些MIS相关的项目开发中,我们经常会涉及到一些数据对象和视图模型之间的互相转换, public class Customer        //mapped from db    {      ...

  8. 移动端touchstart事件穿透问题,解决方案

    [来源]:在开发移动端网站时,会经常徘徊在click和touchstart之间:因为touchstart虽然好用和快速响应:但是其缺点也是显而易见的,当我们大面积的使用touchstart的时候就会遇 ...

  9. Java 定时任务 & 任务调度

    任务调度是指基于 给定时间点,给定时间间隔 或者 给定执行次数 自动执行任务. 方式1:通过 Thread 来实现 例如如下的代码,可以每隔 1000 毫秒做一次打印操作. public class ...

  10. CSS3 @media 查询,根据屏幕screen大小调节前端显示;媒体查询方法的使用

    ------------------- 1.媒体查询方法在 css 里面这样写 -------------------- @media screen and (min-width: 320px) an ...