前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OC底层探索-Runtime简介OC底层探索-Runtime简介

OC底层探索-Runtime简介OC底层探索-Runtime简介

作者头像
用户8893176
发布2021-08-09 11:27:35
5040
发布2021-08-09 11:27:35
举报
文章被收录于专栏:小黑娃Henry

说起RunTime作为iOS开发者就再熟悉不过,面试基本上一大部分原理性的问题都是出自这里。

runtime官方文档
1. 什么是 Runtime?

c,c++,汇编共同编写的一套为Object-c提供动态运行时功能的API.

2. 运行时

程序执行需要:预编译->编译->链接->可执行文件->装载到内存中->程序启动

  • 编译时: 源代码翻译为机器代码的过程。在iOS/macOS中是通过llvm来完成这一步骤的。主要进行语法、词法分析;
  • 运行时: 装载到内存之后,程序启动到程序退出之前都叫做运行时。在这个过程中我们所做的所有操作都会有系统动态来处理。
3. Runtime的使用

来自apple

  • Obecjctive-C Code: 直接使用OC语法;比如:[self hello],#selector(@"hello")。 这一步可以通过xcrun来验证,最终会编译为objc_msgSend
  • Framework&Serivce:使用Runtime提供的API接口;比如:[self class],NSSelectorFromString() 这一步可以再lib-objc中查看源码
  • Runtime Api:objc_msgSend就是runtime本身的Api
  • Compiler:广义上来说就是llvm+clang编译层
  • Runtime System Library:编译后的系统Mach-o文件
4. runtime的内容
1. OC底层探索10-objc_sendMsg快速查找流程
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • runtime官方文档
  • 1. 什么是 Runtime?
  • 2. 运行时
  • 3. Runtime的使用
  • 4. runtime的内容
  • 1. OC底层探索10-objc_sendMsg快速查找流程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档