美文网首页iOS Developer
简单理解runtime

简单理解runtime

作者: uproject | 来源:发表于2016-10-12 23:42 被阅读109次
  • runtime简称运行时机制,其中最主要的是消息机制,也是oc的一大特点。
  • 对于c语言而言,在编译的时候就会去决定要调用哪一个函数。编译完成之后直接就顺序执行了,即编译的时候就确定了函数调用顺序。
  • 而相比较oc语言,在编译的时候可以调用任何函数,只要声明就可以,而c语言的话会报错,换句话说oc在编译的时候并不能直接决定调用哪个函数,只有在真正运行的时候才会根据函数的名称区执行相对应的方法,属于动态调用过程。
  • oc如何实现动态调用
[person  read];
  • person是个对象,read是函数名, 在iOS中对象都继承与NSObject,而NSObject中存在许许多多的标记(指针),指向父类的(如果父类没有则为NULL)、指向本类方法的、指向属性的,其中有个名为isa的指针(指向自己这个类)
  • 在编译的时候,编译器会将上面的代码转换为一个标记即指针(isa)和一个方法选择器(@selector(read)),这个方法选择器指定了要选定的方法,即read.
  • 首先通过isa标记去找这个类,找到这个类后,在类中通过方法选择器找到要执行的方法
  • 如果没有找到这个类,就去这个类中别的指针标记的地方去找,都没有找到就报错了
  • 如果找到了这个类,就通过方法选择器到类中寻找选定的方法。
  • 如果没有找到选定方法就报错
  • 如果找到了这个选定方法
    • 先将这个指针加到cache中,(这个cache就是用来标记这个类最近使用的方法的指针,有点绕,就是存储一个指针,这个指针是指向这个类最近使用的函数,可以提升效率)
    • 然后就可以通过选定方法自带的指针跳转到对应的方法里面执行了.

相关文章

  • 简单理解runtime

    runtime是一套底层的C语言API,包含很多强大实用的C语言数据类型、C语言函数 平时我们编写的代码,底层都是...

  • 简单理解runtime

    runtime简称运行时机制,其中最主要的是消息机制,也是oc的一大特点。 对于c语言而言,在编译的时候就会去决定...

  • runtime的简单理解

    原文链接:http://blog.csdn.net/mumubumaopao/article/details/51...

  • iOS Runtime简单理解

    简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 O...

  • iOS runtime笔记一

    参考资料 南峰子的runtime 一【OC刨根问底】Runtime简单粗暴理解 对象的理解,元类(meta cla...

  • objective-C之runtime第一篇

    网上查看了一些runtime的资料, 关于runtime是什么?这里想用自己的理解,简单点说:runtime是一套...

  • Runtime基础运用实践和总结

    runtime的理解 今天同学问我什么是runtime,我想了想就简单总结出了这篇文章,以下仅供参考. 我所理解的...

  • Runtime 简单理解及使用

    什么是runtime? runtime 是 OC底层的一套C语言的API(引入或),编译器最终都会将OC代码转化为...

  • runtime简单粗暴的理解

    关于runtime是什么,我这边不做过多解释,百度上一大堆。但是,看看概念,很多人都难以真正理解和使用好r...

  • RunTime理解与实战(二)

    上一篇我们已经对OC的Runtime做了简单的介绍,了解的其原理和API的使用RunTime理解与实战(一),这篇...

网友评论

    本文标题:简单理解runtime

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