回调函数的认识

778 阅读2分钟

OC底层原理探索文档汇总

什么是回调函数? 一般情况下我们是直接调用其他类或库的函数,但有时候我们需要先写好一个方法A传到其他类或库的函数B中,以便这个函数A在函数B执行时也进行执行。 这个函数A就是回调函数。 函数B就是中间函数。 函数A传入到函数B,就叫做注册回调函数。 函数B在运行时调用函数A,就叫做调用回调函数

举例子:

事情: 有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法,不同的旅客有不同的叫醒方法,旅客先提前告诉旅馆的叫醒方法,到一定时间后旅馆在进行叫醒服务时就会采用相应的叫醒方法。

理解:

  • 叫醒服务就是中间函数
  • 叫醒方法就是回调函数
  • 旅客提前告诉旅馆的叫醒方法这个过程就是注册回到函数的过程
  • 旅店在执行通过旅客提供的叫醒方法进行叫醒服务时就是进行回调

回调函数的认识.png

本质: 动态注册函数

优点: 具有很大的灵活性,作为参数传入的函数可以动态的注册

为什么叫回调呢? 系统编程分为两类,系统层和应用层,一般情况下应用层直接调用系统层的函数,但是有的函数为了提高灵活性,可以供应用层传入一个函数,而这个传入的函数就是回调函数。 也就是说回调这个词的来源并不是中间函数要调用初始函数,也不是调用初始函数所在的类,而是系统层返回去调了应用层的函数