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

先举个例子:

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. <基于Qt与POSIX线程>多线程下载器的简易搭建

    原创博客,转载请联系博主! 本项目已托管到本人Git远程库:https://github.com/yue9944882/Snow 项目目标  Major Functionality 开发环境:  Ce ...

  2. 算法思考: poj 1969 Count on Canton

                                      A - Count on Canton Time Limit:1000MS     Memory Limit:30000KB     ...

  3. POJ1182 食物链 并查集

    #include<iostream>#include<stdio.h>#include<string.h>using namespace std;const int ...

  4. 剑指offer之 斐波那契数列

    package Problem9; public class Fibonacci { /* * 题目描述: 写一个函数,输入n,求斐波那契数列的第n项,斐波那契数列的定义如下: n=0,f(n)=0 ...

  5. Java Applet:练习TextField类和TextArea类的文本事件

    出自: Java语言与面向程序程序设计(第二版) 第七章第五节P223 1. [代码]java代码 /** *这个程序主要来练习文本事件,当在文本框(TextField)中输入文字时,会在文本域(Te ...

  6. php设计模式课程---1、什么是设计模式

    php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模 ...

  7. UVA 10158 War(并查集)

    //思路详见课本 P 214 页 思路:直接用并查集,set [ k ]  存 k 的朋友所在集合的代表元素,set [ k + n ] 存 k  的敌人 所在集合的代表元素. #include< ...

  8. Hibernate学习---第八节:继承关系的映射配置

    1.单表继承 (1).实体类,代码如下: package learn.hibernate.bean; import java.util.Date; /** * 持久化类设计 * 注意: * 持久化类通 ...

  9. JavaUtil_07_HttpUtil_使用Hutool 封装的 HttpUtil

    二.参考资料 1.[Hutool]Hutool工具类之Http工具——HttpUtil

  10. jsp 自定义标签中的Function函数

    在taglib中我们发现有一个标签叫做<function>,这次简单介绍<function>标签的基本用法,<function>标签可以做什么呢? 它可以让我们在j ...