OC中block作方法参数时的用法
方式一、在传参时直接声明block回调方法。
1. 定义方法:
- (int)doTest:(NSString *)name para1:(int)temp1 para2:(int)temp2 success:(int (^)(int param1, int param2))success
{
int ret = success(temp1, temp2);
NSLog(@"----%@ -- %d--", name, ret);
return ret;
}
2. 调用方法:
[self doTest:@"Tom" para1:8 para2:15 success:^int(int param1, int param2) { // 调用 doTest的时候,这个红色的block在 doTest 中马上就会调用(见上面蓝色代码)。
return param1 + param2;
} ];
====================================================
////1. 定义方法:
//- (void)doTest:(NSString *)name para1:(int)temp1 para2:(int)temp2 success:(int (^)(int a, int b))success
//{
//
//
// NSLog(@"----temp1=%d -- temp2=%d--", temp1, temp2); // temp1=33; temp2=44;
//
// success(11, 22);
//}
//
//- (void)viewDidLoad {
// [super viewDidLoad];
//
//
// //2. 调用方法:
// [self doTest:@"Tom" para1:33 para2:44 success:^int (int a, int b) { // 调用 doTest的时候,这个红色的block在 doTest 中马上就会调用(见上面蓝色代码)。
//
// NSLog(@"---a=%d -- b=%d--", a, b); // a=11; b=22;
//
// return 0;
// }];
//
//}
===========================================
方式二、用typedef定义一个block别名,在参数中用别名声明参数是block类型。
1. 声明一个block方法的类型:
typedef int (^myBlock)(int a, int b);
2. 定义方法:
- (int)doTest:(NSString *)name para1:(int)temp1 para2:(int)temp2 success:(myBlock)success
{
NSLog(@"----temp1=%d --temp2=%d--", temp1, temp2); // temp1=55; temp2=66;
int , );
return ret;
}
3. 调用方法:
[self doTest:@"Tom" para1: para2: success:^int(int a, int b) {
NSLog(@"----a=%d -- b=%d--", a, b); // a=33; b=44;
return;
}];
OC中block作方法参数时的用法的更多相关文章
- OC中的block作方法参数时的用法
方式一.在传参时直接声明block回调方法. 1. 定义方法: - (int)doTest:(NSString *)name success:(int (^)(int param1, int para ...
- block做方法参数时--block的参数传值过程 例1
说明:此例子中方法的调用在此文中是从下到上调用的.(即: 方法五调用方法四: 方法四调用方法三) 方法一:- (void)setCompletionBlockWithSuccess: ...
- jquery中的ajax方法参数
引用来自:http://www.cnblogs.com/tylerdonet/p/3520862.html jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String ...
- jquery中的ajax方法参数的用法和他的含义
jquery中的ajax方法参数的用法和他的含义: 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(pos ...
- 【Java学习笔记之二十七】Java8中传多个参数时的方法
java中传参数时,在类型后面跟"..."的使用: public static void main(String[] args){ testStringA ...
- OC中 block 的用法
block 常用于反向传值 声明 返回值类型 (^block)(参数列表) 调用 闭包的名字=^(参数列表){}: 闭包的名字(): 如: void(^aaaaa)(int num,NSString ...
- OC中属性及方法
1.声明式属性 a.实例变量 b.声明属性 自动生成setter/getter方法 .h ->@property 属性类型 属性名; .m ...
- 最直接的教你OC中Block的简单使用场景
场景一: A控制器跳转到B控制器 -- B控制器事件处理通过Block回调给A控制器 A 跳转前界面如下 点击ToB按钮到控制器B 在控制器B中点击按钮返回到A界面如下 ...
- jquery中的ajax方法参数总是记不住,这里记录一下。
1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...
随机推荐
- 构建web应用
一.web服务器示例 var http = require('http'); http.createServer(function(req, res){ res.writeHeader(200, {C ...
- 【起航计划 024】2015 起航计划 Android APIDemo的魔鬼步伐 23 App->Notification->IncomingMessage 状态栏通知
应用程序可以使用Notifications来通知用户某个事件发生了(如收到短信).类NotificationManager 用来处理Notification, NotificationManager可 ...
- python的元组
Python的元组和列表很相似,只是元组一旦定义就无法修改,比如定义一个学生的元组: names = ('alex','jack') print(names)#('alex', 'jack') pri ...
- [SVN]TortoiseSVN工具培训3─使用基本流程和图标说明
1.SVN的使用基本流程 注意:对于文件编辑方面,上图的编辑副本操作前建议进行Get lock操作,以防出现后续的冲突等异常报错. 2.SVN的基本图标说明
- Linux 查看CPU、Memory等资源占用情况
linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...
- VtigerCRM-6.4.0-zh_CN (OpenLogic CentOS 7.2)
平台: CentOS 类型: 虚拟机镜像 软件包: vtigercrm6.4.0 commercial crm mysql open source php vtiger 简体中文版 服务优惠价: 按服 ...
- check_mk 分布式监控
http://mathias-kettner.com/checkmk_wato_distributed.html peer(贵族) 管理多个slave 复制配置文件 /etc/check_mk/con ...
- 使用mongoDB时错误解决
接触mongodb遇到的错误,记录下来,后续遇到问题,会持续更新 为了让mongodb更直观,在windows使用了NoSQL Manager for MongoDB作为连接工具 1.在连接数据库时遇 ...
- Wampserver由橙变绿的解决过程
因为C盘的内存问题,就重装了win7系统,那么就面临着很对软件要重新进行安装,安装wampserver时,再次遇到了服务器的图标一直是橙色的而不变绿色,安装包地址: http://download.c ...
- ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
ABAP 使用关键字重复引入一个include program,会报syntax error: 原因是因为ABAP对include这个关键字的实现和其他编程语言有点不一样,在激活时简单地把被inclu ...