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请求方法,例如 ...
随机推荐
- springboot从入门到精通(三)
再开始第三节之前,先补充一下第二节里出现的小问题,就是springboot的application.properties,我在文件中添加了server.port=9090这个参数,但是启动项目后并未生 ...
- MyEclipse快捷键大全,很实用
Eclipse本身很快的,但是加上了myeclipse后,就狂占内存,而且速度狂慢,那如何让Eclipse拖着myeclipse狂飚呢?这里提供一个: 技巧:取消自动validation valid ...
- Android Studio 创建虚拟机失败 Failed to load 解决办法
Name: Nexus_S_API_21 CPU/ABI: ARM (armeabi) Path: H:\Users\Pavkoo\.android\avd\Nexus_S_API_21.avd Er ...
- zabbix 编译安装指导
zabbix 编译安装 下载 安装 安装后的配置 下载源码包 zabbix官网:https://www.zabbix.com/ zabbix下载:https://www.zabbix.com/down ...
- Java 开发23种设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- chrome浏览器设置12px以下字体大小
内容很简单 在 body 上添加一个 css 属性即可. .body { -webkit-text-size-adjust: none; } 结束,晚安!
- 859. Buddy Strings (wrong 4 times so many cases to test and consider) if else**
Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...
- bzoj2568 比特集合
Description 比特集合是一种抽象数据类型(Abstract Data Type) ,其包含一个集合S,并支持如下几种操作: INS M : 将元素 M 插入到集合S中: DEL M : 将集 ...
- javascript入门笔记7-计时器
计时器 语法: setInterval(代码,交互时间) 参数说明: 代码:要调用的函数或要执行的代码串. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms). 例子: & ...
- iOS新浪微博OAuth2.0认证代码
#import "ViewController.h" #import "AFNetworking.h" @interface ViewController () ...