美文网首页
OC底层-alloc&init探索

OC底层-alloc&init探索

作者: 含笑州 | 来源:发表于2020-09-07 14:14 被阅读0次

前言

我们创建一个对象经常用到alloc、init或者new,也大概知道alloc做了分配内存,init做了初始化,但是底层到底干了什么却不太清楚,本篇文章将为大家揭开这个神秘的面纱。

准备

调试方式笔者这边有三种:断点调试、汇编调试(xcode自带)、调试oc源码,我个人比较喜欢的是调试源码,我这边提供下源码下载地址,断点调试、汇编调试这两种方式不是本章的重点,本章重点说下调试源码。

源码下载好后,按照这篇文章去配置,配置好了之后进入我们这篇文章的主题。

开始

我们先创建一个类继承NSObject这个对象,然后我们在main函数中调用这个类进行alloc、init、加入断点,一步步调试,alloc底层调用流程如下:

这边重点注意下_class_createInstanceFromZone这个方法里面的instanceSize方法,这个方法主要是用来计算需要的内存空间大小,calloc方法向系统申请开辟内存,返回地址指针,initInstanceIsa方法主要来将地址指针关联到相应的类。

init方法:return (id)self; 以工厂设计的方式提供了构造方法。

相关文章

网友评论

      本文标题:OC底层-alloc&init探索

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