Runtime
一、什么是 runtime ?
- Objective-C 语言将尽可能多的决策从 编译时和链接时 推迟到运行时。只要有可能,它就 动态 地做事情,这意味着该语言不仅需要一个编译器,还需要一个 运行时系统 来执行编译后的代码。运行时系统作为 Objective-C 语言的一种操作系统,它使语言起作用。
- 因为 Objc 是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到 运行时 。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个 Objc 运行框架的一块基石。
- runtime 简称运行时,OC 就是运行时机制,其中最主要的是 消息机制 。对于 C 语言,函数的调用在编译的时候会决定调用哪个函数。对于 OC 的函数,属于 动态调用过程 ,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。
- runtime 基本是用 C 和汇编 写的,可见苹果为了动态系统的高效而作出的努力。
Objective-C Runtime深入解析:objc_msgSend的快速查找机制
本文详细介绍了Objective-C Runtime的objc_msgSend消息发送机制,包括Runtime的基本概念、运行方式和方法本质。重点分析了objc_msgSend的实现,特别是CacheLookup的缓存查找过程,揭示了如何通过SEL快速找到IMP。文章还探讨了当缓存未命中时,如何通过慢速查找流程完成消息发送。
订阅专栏 解锁全文
3万+

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



