Runtime简介
做过Android开发的同学都知道,早期的Android系统采用的是Dalvik机制,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,大大的降低了app的运行效率。在Android 5.0系统之后,系统采用了ART机制,应用在第一次安装的时候,字节码就会预先编译成机器码,以后每次运行速度大大的提高了。
OC是一门动态语言,所以它总是想办法把一些决定工作从编译推迟到运行时,也就是说在iOS的编译系统里,光有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的工作。
iOS系统采用的就是Runtime机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC函数来说,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。
基本结构
要谈Runtime机制,必然要先了解OC的对象以及类的结构。首先我们看一下和Runtime相关的头文件。
和运行时相关的头文件,其中主要使用的函数定义在message.h和runtime.h这两个文件中。在message.h中主要包含了一
本文介绍了iOS中的Objective-C Runtime机制,解释了其基本结构,包括类的定义和函数的定义。详细阐述了Runtime如何在运行时决定方法调用,并探讨了Runtime在实际开发中的应用,如动态添加变量和方法、方法交换、类别属性扩展等。
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



