美文网首页
浅析Runtime

浅析Runtime

作者: lanmoyingsheng | 来源:发表于2018-09-14 10:17 被阅读5次
一、什么是Runtime

Runtime是一套底层的纯C语言的API。编写的OC、Swift代码在运行中以C语言执行,Runtime是OC、Swift的幕后工作者。

二、Runtime的机制

对于C语言,函数的调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行,无任何二义性。
OC的函数调用成为消息发送。属于动态调用过程。在编译的时候并不能决定真正调用哪个函数(事实证明,在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明过就不会报错。而C语言在编译阶段就会报错)。
只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。

三、Runtime的具体实现

例如OC中的对象调用方法,最终会调用

objc_msgSend(receiver,@selector(message));

receiver会根据@selector(message)(这个selector其实就是C里面的字符串)在receiver的method_cache、method_list中寻找,如果没找到,在超类中的寻找。如果还没找到,报错。

相关文章

  • Runtime

    kyson老师 iOS开发之runtime(1):runtime调试环境搭建iOS开发之runtime(2):浅析...

  • load-----方法实现交换Method Swizzling

    ios runtime浅析(三):Method Swizzling【思维走】 method swizzling也许...

  • iOS runtime(一)数据结构和元类

    Runtime全方位装逼指南Runtime系列(浅析数据结构) 数据结构 Class:结构体objc_class的...

  • runtime之全屏滑动移除控制器

    最近有朋友想了解runtime在这里军哥就浅析一下runtime 1.首先你要了解什么是runtime答: run...

  • 浅析Runtime

    一、什么是Runtime Runtime是一套底层的纯C语言的API。编写的OC、Swift代码在运行中以C语言执...

  • runtime浅析

    参阅文章‘https://www.jianshu.com/p/a3fb0919877c’ 第一章 1.简介 Obj...

  • Runtime浅析

    什么是Runtime C语言是一门静态语言,在编译阶段已确定所有的数据类型,函数方法。 Objective-C是一...

  • iOS Runtime浅析

    完整的程序生命阶段可以大致分为编辑,编译,链接,分发,安装,加载和运行这几个阶段。 Runtime 在广义上是指程...

  • OC中Runtime浅析

    最近了解了一下OC的Runtime,真的是OC中很强大的一个机制,看起来比较底层,但其实可以有很多活用的方式。 什...

  • babel polyfill runtime 浅析

    作者:weixin_34163741来源:CSDN原文:https://blog.csdn.net/weixin_...

网友评论

      本文标题:浅析Runtime

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