iOS Runtime详解(新手也看得懂)
Runtime的特性主要是消息(方法)传递,如果消息(方法)在对象中找不到,就进行转发,具体怎么实现的呢。我们从下面几个方面探寻Runtime的实现机制。Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。Objective-C 是一个动态语言,这意味着它不仅需要一个编译器,也需要一个运行时系统来动态得创建类和对象、进行消息传递和转发。了解 Runtime ,要先了解它的核心 - 消息传递 。而 macOS 较老的32位程序仍采用 Objective-C 1 中的(早期)Legacy 版本的 Runtime 系统。Runtime 基本是用 C 和汇编写的,可见苹果为了动态系统的高效而作出的努力。在iOS的Runtime中,Method通过selector和IMP两个属性,实现了快速查询方法及实现,相对提高了性能,又保持了灵活性。为了加速消息分发, 系统会对方法和对应的地址进行缓存
用户评论