美文网首页RunTime
iOS开发-运行时机制runtime(一)

iOS开发-运行时机制runtime(一)

作者: 037e3257fa3b | 来源:发表于2016-12-07 19:10 被阅读52次

写在前面:刚接触iOS开发时,runtime我们听得很多,感觉很高大上,却又说不出个所以然,今天,我把我自己知道的分享给大家。

首先,说OC是运行时机制,那肯定是有一个比较对象。我们拿C语言和OC作对比。C语言写的代码,在编译的时候就已经决定了某一段代码在运行时就会调用某一个函数;而OC则不同,OC在编译的时候只会检查是否已经定义一个方法,没有实现也不会报错,但是,在运行时,执行某一个只定义未实现的方法就会崩溃。所以说OC是运行时机制。

OC中的方法调用:
任何方法调用本质都是发送一个消息,用runtime发送消息.OC底层就是通过runtime实现的。

方法调用的流程:
OC中的方法可分为类方法和对象方法,对象方法可以再类对象的方法列表中找到, 类方法可以在元类的方法列表中找到。而所有方法都存在于内存的方法区。在这里简单说明一下:
内存的五大区:1.栈 2.堆 3.静态区 4.常量区 5.方法区。
1.栈:不需要手动管理内存,自动管理
2.堆,需要手动管理内存,自己去释放
其他三个凭字面意思理解,我也不是太懂。
方法调用流程:
1.通过isa去对应的类中查找(开发调式过程中,我们都会看到某一个对象的isa指针,就是通过isa指针找到对应的类)
2.注册方法编号(给方法注册编号后,既可以做统计又方便查找。就像我们每个人有自己的身份证号码,学生有学号一样)
3.根据方法编号去查找对应方法
4.找到只是最终函数实现地址,根据地址去方法区调用对应函数

相关文章

  • ios runtime的使用

    ios 开发中的runtime 的简单理解 1.runtime也就是ios开发中的运行时机制,是一套比较底层的C语...

  • runtime-属性与变量

    序言 runtime简称运行时,就是在程序运行时的一些机制,在iOS开发中runtime的特性使得oc这门语言具有...

  • Runtime 一个必须会的技能

    Runtime 一个必须会的技能 前言: Runtime是iOS的一个运行时机制,在iOS的开发中很多时候会使用到...

  • Runtime(运行时) 入门

    1.什么是Runtime? runtime是iOS 的一种运行时机制. 是iOS ...

  • 关于OC 底层想聊聊

    OC 作为一种经典的运行时动态语言, 底层的动态运行时、消息机制另无数iOS开发者痴迷. Runtime: 结构模...

  • iOS---Runtime

    RunTime runtime 是什么 runtime ,运行时机制,是一套底层 C 语言的 API,其为 iOS...

  • 使用Runtime的API

    runtime 的运行时机制 runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心...

  • iOS runtime 运行时( - 俗谈)

    iOS runtime 运行时( - 俗谈)iOS runtime 运行时( 二 深谈)iOS runtime 运...

  • iOS知识梳理8:万恶的Runtime

    本文中所使用的参考链接:ios开发-Runtime详解ios Runtime几种基本用法简记iOS运行时详解ios...

  • Swift派发方式

    简介 作为iOS开发,大家都知道OC的派发方式其实就是利用runtime采用了运行时机制使用obj_msgSend...

网友评论

    本文标题:iOS开发-运行时机制runtime(一)

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