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 ...
随机推荐
- [转]MySql中创建序列的方法
CREATE TABLE `my_seq` ( `seq` int(10) NOT NULL default 10000) ENGINE=MyISAM DEFAULT CHARSET=utf8 ...
- Elasticsearch 5.5.1的安装和入门教程(转)
说明:转自老阮的文章,业界最简单的入门教程.一切的安装的运行建议不要用root权限,最好是当前用户下的权限. 作者: 阮一峰 日期: 2017年8月17日 全文搜索属于最常见的需求,开源的 Elast ...
- golang slice 切片原理
golang 中的 slice 非常强大,让数组操作非常方便高效.在开发中不定长度表示的数组全部都是 slice .但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果 ...
- 详解MySQL性能优化(二)
http://www.jb51.net/article/70530.htm 七.MySQL数据库Schema设计的性能优化高效的模型设计 适度冗余-让Query尽两减少Join 大字段垂直分拆-sum ...
- Toad 常用快捷键
F9 执行全部sql Ctrl_Enter 执行当前sql Ctrl+T 补全table_name ...
- CDHtmlDialog 基本使用
跳转 Navigate("res://tt.exe/#138"); 138是html的资源号 输入框的Get,set HRESULT CTTDlg::OnButtonCancel( ...
- pgfplots画二维图真的很方便,多例比较
%直接PDFLATEX编译即可\documentclass[border=1mm]{standalone}\usepackage{tkz-euclide,pgfplots}\begin{documen ...
- AWR报告简易分析
Snap Id Snap Time Sessions Cursors/Session Begin Snap: 35669 2012-11-8 13:00 1246 11.3 End Snap: 356 ...
- xUtils怎样通过注解对FindViewById进行封装
之前讲到了介绍了一下xUtils的基本用法,今天我们就来具体介绍一下关于xUtils中的ViewUtils模块. 在ViewUtils模块中我们首先看到的是它採用了一种注解的方式进行声明,那么我们首先 ...
- XP如何找到网上邻居
右击桌面,点击属性,切换到桌面,自定义桌面,勾选网上邻居即可.