iOS中block作为一个函数的参数
来源:互联网 发布:mac电脑键盘清理 编辑:程序博客网 时间:2024/05/21 17:21
我们首先设想有如下的一个头文件:
@interface ViewController :UIViewController
{
AAA *aaa;
}[aaa withBlock:^(NSString* error_code, NSError* error)
{
if(!error)
{
switch ([error_code intValue]) {
case 0:
NSLog(@"获取成功!");
break;
case 1:
NSLog(@"获取失败!");
break;
default:
break;
}
}
else
{
NSLog(@"error=%@",error);
}
}];
在AAA中的.m文件有withBlock:函数的定义,如下
+(void)withBlock:(void (^)(NSString *,NSError *))block
{
[BBB success:^(RequestOperation *operation,id response)
{
NSString* code=[response objectForKey:@"error_code"];
if(block)
{
block(code, nil);
}
}
failure:^(RequestOperation *operation, NSError *error)
{
if(block)
{
block(nil, error);
}
}];
}
是在ViewController的viewDidLoad函数内执行吗?
其实是在上面打下划线的那句执行的时候,那段被封装的代码得以执行。
这样看来作为函数的参数,block块类似于回调函数或者delegate。当函数调用了,当某个事件触发,这时blocks里的内容就会运行。这样有利于代码的整合和阅读,你不需要到别处实现代理方法。
以上只讨论block作函参这一情景,如有不对之处希望网友指正,其他还有一些(这些在百度上一搜一大片,不过基本上都是转的一个人的)也值得一看。
- iOS中block作为一个函数的参数
- ios-block的作为参数
- C++中一个函数作为作为另一个函数的参数
- 最简单的IOS Block与协议 block作为函数参数的使用
- Objective-c - block作为函数的参数
- OC 重点block-------3-------block如何作为函数的参数
- python中把一个函数作为参数
- 一个函数作为另一个函数的参数
- iOS基础知识:数组作为函数的参数
- OC坑集: block作为函数参数
- 094.Block Argument 块作为函数参数
- 094.Block Argument 块作为函数参数
- OC坑集: block作为函数参数
- 用函数作为另外一个函数的参数
- 如何将一个函数作为另一个函数的输入参数
- Objective-c - block作为方法的参数
- 在模块中新建一个block作为自己的子block!!!!
- C语言中指针变量作为函数参数和一般变量作为函数参数的区别
- 理解ARC在Objective-C中的应用
- 使用JavaMail发送邮件
- Asp.net异步文件读写并发处理总结
- Android Activity切换动画overridePendingTransition
- android接触--新版本编译OK,系统却起不来
- iOS中block作为一个函数的参数
- 用 W32DASM看IF高级语法
- Android4.2系统打开USB调试
- java开发环境配置/系统搭建(tomcat,jboss,Mysql)
- 设计模式六大原则(2):里氏替换原则
- 记录-- Android异步下载图片并且缓存图片到本地
- 简单等差数列的求和
- windows8建wifi虚拟热点
- rh436 - rhel6.2如何在host关闭时不保存kvm虚拟机的状态