Object—C 块在函数中作为参数时的分析
暂时对这个有了一些粗浅的理解,记下来一边后面学习时学习,改正。
先举个例子:
A类:
.h文件:
@interface A : NSObject
- (void)Paly1:(void (^)(double salary))game1
Paly2:(void (^)(double salary))game2;
A类:
.m文件:
- (void)Paly1:(void (^)(double salary))game1
Paly2:(void (^)(double salary))game2{
double zsalary;
scanf("%lf",&zsalary);
if(zsalary>5000){
Play1(zsalary);
}else{
Play2(zsalary);
}
}
@end;
B 类:
.h文件:
@interface B :NSObject
- (void)Play;
@end;
.m 文件:
@implementation B
- (void)Play{
A *a = [A new];
[a Play1:^(double salary)game1{
NSLog(" 超过5000了,玩game1去!");
} Play2:^(doule salary)game2{
NSLog(" 靠,还没有5000,只能玩game2了!");
}];
}
@end;
通过Block可以实现回调,也常说成委托。当程序运行时,虽然B类的函数调用类A类的含Block的函数,但B类并没有真正的权利去调用这个Block,只能调用A,真正由权利去调用Blocks的是A类定义的函数,这是通过这个函数在A类中定义的语句来判断具体进入哪个Block中。通过这个就是回调,委托。
具体的详细解说参见(牛人博客):http://www.cnblogs.com/ygm900/p/3633131.html
转载于:https://www.cnblogs.com/chaiwentao/p/3993135.html
Object—C 块在函数中作为参数时的分析相关推荐
- libvlc_media_add_option 函数中的参数设置
libvlc_media_add_option 函数中的参数设置 Usage: vlc [options] [stream] ... You can specify multiple stream ...
- 在setInterval函数中传递参数
本文翻译自:Pass parameters in setInterval function Please advise how to pass parameters into a function c ...
- python函数中可变参数的传递方式是_Python中函数的参数传递与可变长参数
1.Python中也有像C++一样的默认缺省函数 1 def foo(text,num=0):2 printtext,num3 4 foo("asd") #asd 0 5 foo( ...
- [SpringBoot2]ajax函数中data参数的数据设置方式
ajax函数中data参数的数据设置方式:
- listen函数的第二个参数_signal(SIGPIPE,?SIG_IGN)listen函数中backlog参数分析
signal(SIGPIPE, SIG_IGN); TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端 ...
- Pytorch中tensor维度和torch.max()函数中dim参数的理解
Pytorch中tensor维度和torch.max()函数中dim参数的理解 维度 参考了 https://blog.csdn.net/qq_41375609/article/details/106 ...
- 以下是一个使用 VBA 的例子,演示了 ByVal 和 ByRef 的区别,以及如何在函数中传递参数和返回值。
以下是一个使用 VBA 的例子,演示了 ByVal 和 ByRef 的区别,以及如何在函数中传递参数和返回值: Sub Example()Dim x As Integer, y As Integerx ...
- 函数中out参数的应用
函数中out参数的应用 1.out参数使用情况说明 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组: 但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可 ...
- 解决JS在url中传递参数时参数包含中文乱码的问题
解决JS在url中传递参数时参数包含中文乱码的问题 参考文章: (1)解决JS在url中传递参数时参数包含中文乱码的问题 (2)https://www.cnblogs.com/xushengguan/ ...
最新文章
- 天池NLP中文预训练模型赛来了!
- 物联网是地产行业转型的有力推手
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 完整代码示例 ) ★★★
- NewLife.Net——管道处理器解决粘包
- 最常用的决策树算法(二)Random Forest、Adaboost、GBDT 算法
- 红旗河最早设计计算机的目的,论红旗河的利弊及其替代方案
- akka和rabbitmq_Akka Notes –演员记录和测试
- OpenGL ES 2.0 Shader相关介绍
- KB/MB/GB/TB之间的换算是乘以1000还是1024?
- 孔浩用的mysql工具_springmvc 孔浩 hibernate
- 终极算法:机器学习和人工智能如何重塑世界笔记
- ubuntu18.04安装lua5.3.6和luarocks3.8
- 用批处理的方式解压文件
- linux link 硬链接,Linux系统中的硬链接(hard link)与软链接(symbolic link)
- BZOJ1864: [Zjoi2006]三色二叉树
- (经典)tcp粘包分析
- Windows运行.sh文件方法
- 华中师范大学计算机考研资料汇总
- IF 19.865代谢组学高分文章,非靶标代谢流助力揭示18SrRNA中m6A控制肝癌机制!
- anki 中使用 u,m 键上下滑动页面