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请求方法,例如 ...
随机推荐
- hystrix应用介绍(四)
前几章已经讲了hystrix的应用场景,以及如何使用,本章我们针对如何进行hystrix参数配置做一些分析 //异步的执行 @HystrixCommand(groupKey = "testK ...
- hystrix应用介绍(三)
hystrix提供了两种隔离策略:线程池隔离和信号量隔离.hystrix默认采用线程池隔离. 1.线程池隔离 不同服务通过使用不同线程池,彼此间将不受影响,达到隔离效果. 例如: 我们可以通过andT ...
- java调用7zip解压压缩包
前言 最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题. 7zip命 ...
- css3 走马灯效果
纯css3实现了一个正六边形的走马灯效果,记录一下css3动画的学习情况,效果如下: 主要用到的css3技术有:keyframes.perspective.perspective-origin.tra ...
- 【MATLAB】画信号频谱的子函数
输入信号序列和采样率,该子函数可以画出该信号的频谱图. function [f,spec,NFFT]=spec_fft_plot(sample,L,Fs) % 输入数据说明: % sample:信号序 ...
- [topcoder]SRM 646 DIV 2
第一题:K等于1或者2,非常简单.略.K更多的情况,http://www.cnblogs.com/lautsie/p/4242975.html,值得思考. 第二题:http://www.cnblogs ...
- CRUD全栈式编程架构之MVC的扩展设计
MVC执行流程 路由的扩展 我理解的路由作用有以下几个 Seo优化,用“/”分开的url爬虫更爱吃 物理和逻辑文件分离,url不再按照文件路径映射 Controller,Action的选择 MVC路由 ...
- 利用Js或Css滤镜实现IE6中PNG图片半透明效果 IE6PNG妥妥的
接下来介绍几种PNG图片在IE6中不透明的解决办法 1.用自己的PNG,让IE6一边去吧 首先制作PNG图片的时候,另存为一个GIF图片,因为IE6是支持GIF图片透明,然后在css定义 .pngte ...
- Axure 8 Tab制作
1 在[页面]面板中选中[page1] 2 在[元件库]中选中[动态面板],并拖拽到[设计区域]中 3 双[设计区域]中的动态面板,打开[动态面板管理]页面 4 在[动态面板管理]页面中输入动态面板的 ...
- ios 逆向工程文档汇总
iOS逆向工程工具集 http://www.jianshu.com/p/7f9511d48e05 移动App入侵与逆向破解技术-iOS篇 http://blog.csdn.net/heiby/arti ...