iOS开发中对回调函数调用的理解

泻药,不过我是来跑题的:上次那个说只想做iOS开发不想碰底层的呢?自己出来做一个大型思考!
■网友
直说吧……iphone-private-frameworks/UIKit at master · kennytm/iphone-private-frameworks · GitHub这个是UIKit所有头文件,是通过Class Dump导出的。UIKit的源码在Apple手里面,你的电脑上只有编译好的库而已。如果你能够看到它的实现文件,请立即联系我……如果只是想知道Target Action的原理,实现,或者是iOS程序启动到UI绘制完成中间经历的所有事件,上面说过的Developing iOS 8 Apps with Swift里面就有,看View Controller Lifecycle和Segue那章,讲的非常详细。想要知道源码级别的实现?试试IDA Pro看看你能不能发现什么吧。等那天Apple开源了估计就可以了吧……问题可以重定向到:iphone - Where are the UIKit Framework implementation files located?
■网友
其实就是对于一个处理流程中,为了可控制,可定制,设计者在这些流程中挖了一些坑,这些坑是让你去添的,你只要遵守填坑的规矩就行。
■网友
下面举个通俗的例子: 某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后*****机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来*****机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。WebService以及Java的RMI都用到回调机制,可以访问远程服务器程序。
■网友
【iOS开发中对回调函数调用的理解】 iOS开发中对回调函数调用的理解

iOS里面监听和回调函数的概念跟题主理解的不太一样。你说的监听应该是target-action,而你说的回调函数是delegate和data source。推荐可以看看白胡子老头的视频。Developing iOS 7 Apps for iPhone and iPadDeveloping iOS 8 Apps with Swift不过2个课程对于MVC概念讲解的第一节课好像用的是同一个视频源。因为上iOS8的时候老头嗓子爆炸了=。=。。


    推荐阅读