iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理

举报
Serendipity·y 发表于 2022/02/17 01:09:50 2022/02/17
【摘要】 Runtime 一、什么是 runtime ? Objective-C 语言将尽可能多的决策从 编译时和链接时 推迟到运行时。只要有可能,它就 动态 地做事情,这意味着该语言不仅需要一个编译器,还...

Runtime

一、什么是 runtime ?
  • Objective-C 语言将尽可能多的决策从 编译时和链接时 推迟到运行时。只要有可能,它就 动态 地做事情,这意味着该语言不仅需要一个编译器,还需要一个 运行时系统 来执行编译后的代码。运行时系统作为 Objective-C 语言的一种操作系统,它使语言起作用。
  • 因为 Objc 是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到 运行时 。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个 Objc 运行框架的一块基石。
  • runtime 简称运行时,OC 就是运行时机制,其中最主要的是 消息机制 。对于 C 语言,函数的调用在编译的时候会决定调用哪个函数。对于 OC 的函数,属于 动态调用过程 ,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。
  • runtime 基本是用 C 和汇编 写的,可见苹果为了动态系统的高效而作出的努力。
二、runtime 版本
  • runtime 有两个版本:⼀个 Legacy 版本(早期版本) ,⼀个 Modern

文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Forever_wj/article/details/108687714

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。