美文网首页
iOS alloc的流程

iOS alloc的流程

作者: 忆往不纠 | 来源:发表于2020-09-08 21:08 被阅读0次

前言

之前在做开发的时候,真的没有调试过alloc后的流程,以及它调用了那些方法,就知道alloc是申请内存空间,今天小编就探索一下alloc后,到底做了那些事情!

首先,找到这个苹果源码的官网https://opensource.apple.com/ 

 下载最新的这个地址用的更直接 https://opensource.apple.com/tarballs/ 

按照下仔新的objct4 源码代码:

可以以断点的方式跟进去,具体流程如下:

当一个类调用alloc方法时, alloc方法里面首先调用_objc_rootAlloc方法,_objc_rootAlloc方法里面调用callAlloc方法,callAlloc方法里面会调用_objc_rootAllocWithZone, _objc_rootAllocWithZone方法里面调用_class_createInstanceFromZone,在_class_createInstanceFromZone里面调用  1.cls->instanceSize方法 计算出需要的内存空间;2.calloc方法 向系统申请开辟内存空间,返回指针地址;3.3.obj->initInstanceIsa方法 关联到相应的类

如图所示:

alloc流程图

总结:

通过苹果提供的开源代码,清晰可见alloc流程,明白到底alloc做的那些操作,下载苹果源码,调试的时候可能会遇到一写坑,需要自己配置配置一些东西,后期把我自己弄好的提供给大家

相关文章

  • iOS OC 方法的本质

    iOS Objective -C alloc 调用流程 iOS Object-C init&new iOS OC ...

  • iOS OC 类原理

    iOS OC底层探索 iOS Objective -C alloc 调用流程 iOS Object-C init&...

  • iOS 底层探索 文章汇总

    1、对象底层:结构体+alloc分析iOS-底层探索01:alloc 流程分析[https://www.jians...

  • iOS alloc流程

    流程根据objc4-781源码分析 alloc会先调用_objc_rootAlloc()函数,_objc_root...

  • iOS alloc 流程

    instanceSize 计算内存大小 calloc 申请开辟内存 initInstanceIsa 指针关联对象

  • iOS alloc的流程

    前言 之前在做开发的时候,真的没有调试过alloc后的流程,以及它调用了那些方法,就知道alloc是申请内存空间,...

  • iOS 底层探索03-内存对齐

    在iOS 底层探索02-alloc/init/new 探索提到了alloc 流程中涉及的一个重要方法:instan...

  • iOS-底层原理 04:NSObject的alloc 源码分析

    iOS 底层原理 文章汇总 主要NSObject中的alloc是与自定义类的alloc的源码流程的区别,以及为什么...

  • iOS探索 多线程之GCD应用

    摘于文章:链接: 欢迎阅读iOS探索系列(按序阅读食用效果更加)iOS探索 alloc流程iOS探索 内存对齐&m...

  • iOS alloc 流程分析

    iOS 底层探索 文章汇总[https://www.jianshu.com/p/77dae1109e07] 一、思...

网友评论

      本文标题:iOS alloc的流程

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