美文网首页
OC消息传递机制与消息转发机制

OC消息传递机制与消息转发机制

作者: 0fbf551ff6fb | 来源:发表于2017-11-08 16:01 被阅读0次

    oc运行机制是动态的,运行时所执行的代码是由运行环境来决定的,静态的机制是由编译器来决定的,(编译期是指把你的源程序交给编译器编译的过程,最终目的是得到可执行的文件。运行期指的是你将可执行文件交给操作系统(输入文件名,回车)执行、直到程序执行结束的期间,执行的目的是为了实现程序的功能。)

    oc是动态绑定,调用编译阶段并不会去绑定执行的函数,只有在运行的时候才回去对象中查找方法,接受方法的类中有个方法列表,如果能找到方法就调用,找不到的话就回去父类中查找

    C语言是静态绑定,在编译的阶段就能决定所要调用的函数

    消息转发机制

    当一个对象无法处理时间的时候会进入消息转发流程,可以通过运行时机制,将我们需要的某个方法加入到类中,这就是运行时添加属性的原理

    分类不能直接添加属性是因为分类中没有实现set和get方法,即使手写实现也不能调用,如果加入属性就会崩溃,因为调用的时候找不到set和get方法,这样会进入消息转发机制,此时就可以利用运行时机制,当进入消息转发机制后,利用运行时机制为其生成set和get方法,进而添加属性.

    相关文章

      网友评论

          本文标题:OC消息传递机制与消息转发机制

          本文链接:https://www.haomeiwen.com/subject/fizemxtx.html