“回调”也很早就有,在C、C++中是一个非常广泛应用的技术。到了OOP理论中,“回调”有了一个新的名称,叫做“控制权反转(IoC)”。我很喜欢这个名词,比“回调(Callback)”要好理解一些。IoC就是在某个对象操作的内部,将其运行控制权交给外部来执行,而不在对象操作内部来做。还是以上面Baker为例子,其中MakePizza函数中可以做一个回调函数PreparePizza,其将准备原料的操作交给外部对象。这样当程序运行到MakePizza函数中的PreparePizza时,会跳转到Baker对象外面来找真正的PreparePizza函数。这样当我们在用Baker类时,可以定义一个PreparePizza函数,并将Baker对象的MakePizza操作的回调函数设置为我们自己的PreparePizza函数,就实现了在不破坏原有Baker对象代码的前提下,自定义了当前Baker实例的MakePizza函数。可以多准备一定葱,或者增加一些胡椒,自然所得的口味不一样。“回调”技巧能在保证程序可维护性的前提下,给予编程极大地自由度,自然是程序员最爱的技巧之一。
另一种用法:在ios开发过程中,经常会遇到A类调用B类的某一个方法,调用完B类方法之后,再执行A类中的其他方法的操作。
主要有三种:delegate,block和NSNotificationCenter
其他:
•函数指针
• objc_msgSend
• IMP
• objc_msgSend
回调机制:http://ioswiki.sinaapp.com/index.php?doc-view-68
版权声明:本文为CSDN博主「weixin_34217711」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_34217711/article/details/91744533