美文网首页专注iOS开发的小渣渣
OC底层探索-Runtime简介

OC底层探索-Runtime简介

作者: Henry________ | 来源:发表于2020-11-13 22:43 被阅读0次

    说起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快速查找流程

    相关文章

      网友评论

        本文标题:OC底层探索-Runtime简介

        本文链接:https://www.haomeiwen.com/subject/jxtibktx.html