浅析回调函数

回调函数,本质上也是个函数(搁置函数和方法的争议,就当这二者是一回事)。由"声明"、"实现"、"调用"三部分组成。

再加一部分就变成了回调函数

回调特征:---   方法的实现不在本类,但是调用在本类

上一个例子:

A.h 文件

//声明回调函数:给指定的员工发放工资

-(void)paySalaryForStaff:(int)staffId withMoney:(void(^)(int salary))amount;

//声明回调函数:告诉所有员工周末加班若干小时

-(void)weekEndWillWorkOverTime:(int)hours

 

A.m 文件

-(void)paySalaryForStaff:(int)staffId withMoney:(void(^)(int salary))amount

 {

   //code 计算指定员工应该发多少工资

   //计算完毕后,触发回调函数,告诉员工已经给其发了5万元的工资

    amount(50000);  //具体这5万元,员工怎么花,就让员工类来实现

}

B.m

-(void)spendMoney

{

   //code 没有钱,做些无聊的事情,等工资中,如打游戏,看电影……

   //code 又看了50部电影

   //code 设想发了工资怎么花, 创建A类的一个对象a

   [a  paySalaryForStaff:007

       amount:^(int salary)

       {

                        if(salary==50000)

                           {

                             NSLog(@"我靠,这个月绩效满分啊!和朋友庆祝一下!")

                             //code 拿着工资各种败家……

                           }

       }

   ];

}

借用别人的一句 大白话理解“回调”的概念:“ 函数的实现部分虽然不在老家(函数声明的A类),但是最终的调用还是由老家人完成 ”,这样的函数就叫做回调函数。“ 老家人调用你,就叫回调,因为你本来就属于老家。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值