* oc语言采用 “消息结构”,而非函数调用。使用消息结构的语言,其运行时,所执行的代码由运行环境来决定;而使用函数调用的语言,则由编辑器决定。如果,调用的函数是多态的,那么在运行时就要按照”虚方法表”来查出到底应该执行哪个函数实现。而采用消息结构的语言总是在运行时才会去查找所要执行的方法。实际上,编译器甚至不关心接收消息的对象是何种类型。接收消息对象问题也要在运行时处理,其过程叫做动态绑定。
oc语言的重要工作都是在”运行期组件”而非编译器来完成。使用oc面向对象的特性所需的全部数据结构及函数都在运行期组件里面。举例来说,运行期组件中含有全部内存管理的方法。运行期组件本质上就是一种与开发者所编写代码相链接的”动态库”,其代码能把开发者写的所有程序粘合起来。这样的话,只需要更新运行期组件,即可提升程序的性能。在编一起完成的语言,获得性能的提升,则就要重新编译应用程序的代码。
*