美文网首页
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 alloc的流程

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