暂时对这个有了一些粗浅的理解,记下来一边后面学习时学习,改正。

先举个例子:

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

Object—C 块在函数中作为参数时的分析的更多相关文章

  1. Python 函数中,参数是传值,还是传引用?

    在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...

  2. vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置

    vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置 [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/ar ...

  3. unserialize函数中的参数是否是污染数据

    1.原理 在程序编写的时候,往往需要序列化一些运行时数据,所谓序列化就是按照一定的格式将运行时数据写入本地文件.这样做可以对数据进行本地保存,用的时候直接读文件就可以把运行时产生的数据读出.php中就 ...

  4. (转)Java程序利用main函数中args参数实现参数的传递

    Java程序利用main函数中args参数实现参数的传递 1.运行Java程序的同时,可以通过输入参数给main函数中的接收参数数组args[],供程序内部使用!即当你在Java命令行后面带上参数,J ...

  5. 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args

    设置与读取C#控制台应用程序Main函数中的参数args 在项目属性面版->调试->命令行参数设置.空格分隔.读取:string[] str = Environment.GetComman ...

  6. Main函数中的参数argc,argv的使用简单解析

    本篇文章是对Main函数中的参数argc,argv的使用进行了简单的分析介绍,需要的朋友参考下: C/C++语言中的main函数,经常带有参数argc,argv,如下:  int main(int a ...

  7. python函数中的参数类型

    python函数中的参数 动态获取函数的参数 python的函数类型详解

  8. 为什么JavaScript函数中的参数前面不能加var

    首先这里是JavaScript的语法规则. 其次在调用function()函数的时候参数时外部传入的.在传入之前就已经被声明了.没必要在函数参数里声明. 如果想要在函数里用新的参数 function( ...

  9. 在python函数中默认参数的一些坑

    一.默认参数 python为了简化函数的调用,提供了默认参数机制: 这样在调用pow函数时,就可以省略最后一个参数不写: 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: ...

随机推荐

  1. HTML入门学习笔记

    1.html文件的基本架构 <HTML> <HEAD> <TITLE> 网页的标题 </TITLE> </HEAD> <BODY> ...

  2. NOIP前的一些计划

    一些想法 距离NOIP2018只剩下一个星期的时间了,通过这几天在长郡的考试,渐渐感觉还有好多东西自己还不够熟练,也有些东西到现在还不会,现将NOIP前的一些计划列在这里,希望能在考前把他们全部完成吧 ...

  3. 算法(Algorithms)第4版 练习 1.5.15

    用归纳法推导: 1.height = 0时,成立,其level 0的节点个数为C(0,0)=1. height = 1时,成立,其level 0的节点个数为C(1,0)=1,其level 1的节点个数 ...

  4. Mac系统给移动硬盘分区(图文)

    刚买的硬盘500G   准备分几个区 移动硬盘分区格式化有3中形式: 1.Mac OS 扩展日志 格式 此格式mac专用,这种格式的硬盘在PC上不可见,可以用来给 Time Machine 备份, T ...

  5. ASP.WEB Form 几点知识

    1.GridView 行的多选 <asp:TemplateField ControlStyle-Width="30" HeaderText="选择" &g ...

  6. Python基础之列表操作

    列表的常用操作包括但不限于以下操作: 列表的索引,切片,追加,删除,切片等 这里将对列表的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(list) 使 ...

  7. Python中进度条如何实现

    print源码,参数end默认值为换行符,需要置成空,就会实现打印一行的效果 import time for i in range(100): time.sleep(1)#sleep一秒再输出 # 需 ...

  8. PHP把时间转换成几分钟前、几小时前、几天前的几个函数、类分享

    这篇文章主要介绍了php计算时间几分钟前.几小时前.几天前的几个函数.类分享,需要的朋友可以参考下一.函数实现实例1: <?php header("Content-type: text ...

  9. ES+open-falcon之报警自动发送请求信息

    当我们监控nginx的状态码出现错误状态码的时候, 一般的处理方法是通过kibana查询是哪个接口导致从而确定是哪个服务,再进一步登录业务机器查询业务日志确定原因. 我们现在要做的事情就是将 人为的通 ...

  10. BZOJ4545: DQS的trie

    BZOJ4545: DQS的trie https://lydsy.com/JudgeOnline/problem.php?id=4545 分析: 对trie用dfs建sam复杂度是\(O(n^2)\) ...