1、首先来谈一谈runtime机制的原理
1、runtime是运行时的意思;
2、我们在实际编程中,所写的那些英文字符或者中文字符,其实,对于计算机来说,他时不认识的,那么,计算机最后又是怎么样来认识到我们所写的程序的呢?
写完的程序---》都需要一步编译过程,编译成目标文件,这个目标文件本质是二进制文件,注意这里的目标文件就需要分为两种:
**一是,静态语言,例如C,C++。为什么叫静态语言,就是编译完成的目标文件对于计算机而言,在这一步,计算机就已经知道接下来他要干一些什么具体的事件了。**
**二是,动态语言,例如OC。为什么是动态的呢?就是编译完成的目标文件,计算机还是不知道他具体应该干些什么,为什么会是这样的,就得感谢,底层C封装好的,objc_msg(self,addText(methodName)),因为这里的addText里面的是字符串,对于字符串来说,就具有多变性,这个多变指的是,在目标文件里,计算机并不知道这个方法名是否存在,而只有在运行的时候才会检测到这个方法。**
3、所以我们在使用SEL动态绑定方法的时候,就是使用的runtime机制。
2、需要谈一谈runtime的实现
等会在回来写。