美文网首页
runtime介绍

runtime介绍

作者: 码农_1 | 来源:发表于2017-03-14 10:30 被阅读0次

前言:任何方法调用的本质:发送一个消息,用runtime来发送消息,OC底层实现通过runtime来实现。

runtime简称运行时,OC就是运行时机制,也就是在运行时的一些机制,其中最主要的就是消息机制。

对于C语言,函数的调用在编译的时候会决定调用那个函数。

对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用那个函数,只有在真正运行的时候才会更具函数的名称去找到对应的函数并调用。

事实证明:

1.在编译阶段,oc可以调用任何方法,即时这个函数并未实现,只要声明过就不会报错

2.在编译阶段,c语言调用未实现的函数就会报错。

类和对象

Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。

这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正常的运行。这个运行时系统即Objc Runtime。Objc Runtime其实是一个Runtime库,它基本上是用C和汇编写的,这个库使得C语言有了面向对象的能力。

Runtime库主要做下面几件事:

封装:在这个库中,对象可以用C语言中的结构体表示,而方法可以用C函数来实现,另外再加上了一些额外的特性。这些结构体和函数被runtime函数封装后,我们就可以在程序运行时创建,检查,修改类、对象和它们的方法了。

找出方法的最终执行代码:当程序执行[object doSomething]时,会向消息接收者(object)发送一条消息(doSomething),runtime会根据消息接收者是否能响应该消息而做出不同的反应。这将在后面详细介绍。

相关文章

  • 自己实现OC的KVO

    Runtime系列文章在这:Runtime介绍---术语介绍Runtime应用--动态添加方法Runtime应用-...

  • Runtime梳理(一)消息机制及应用

    Runtime的介绍 Runtime消息的传递和转发 Runtime的应用 1.Runtime的介绍 Object...

  • 01 - Runtime

    1.0 Runtime介绍 1.1 Runtime简介 1.2 Runtime总结 1.3 Objective-C...

  • iOS Runtime 常规使用

    Runtime 的常规操作 上次简单介绍了 Runtime 的原理,接下来介绍下 Runtime 常用的操作。 1...

  • iOS面试-Runtime简介

    本文主要介绍runtime的五点 Runtime简介 Runtime(消息机制) Runtime方法调用流程 Ru...

  • runtime底层实现原理

    一、Runtime介绍二、Runtime源码初探三、Runtime消息传递四、Runtime消息转发五、Runti...

  • iOS runtime(4)-runtimeAPI详解和方法替换

    对于runtime我们前边介绍了消息机制,我们并没有介绍runtime的API. 1.runtime的API 一....

  • iOS runtime(4)-runtimeAPI详解和方法替换

    对于runtime我们前边介绍了消息机制,我们并没有介绍runtime的API. 1.runtime的API 一....

  • Runtime介绍

    以下文章很多的参考了 iosswift的翻译的文章。 这是我在简书上写的第三篇文章,喜欢的朋友请点个赞,给我加加油...

  • runtime介绍

    前言:任何方法调用的本质:发送一个消息,用runtime来发送消息,OC底层实现通过runtime来实现。 run...

网友评论

      本文标题:runtime介绍

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