浅析回调函数

来源:互联网 发布:linux查看ssh连接数 编辑:程序博客网 时间:2024/05/29 16:59

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

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

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

上一个例子:

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 0
原创粉丝点击