OC对象的alloc过程

2020-09-06  本文已影响0人  Bel李玉

在iOS开发中,我们使用OC对象来进行编程,本篇文章我们一起来探讨OC对象是如何初始化的。
在这里,我们使用的版本信息如下:

Mac OS: 10.15.6
Xcode: 11.3.1
OC开源库:objc4-781.tar.gz

接下来,我们会根据源码进行调试。

分析

我们对NSObject进行初识化,并且在初始化的位置处设置一个断点 OC1.png

当我们跟进 alloc方法后

OC2.png
会继续 调用callAlloc函数,allocWithZone参数需要注意下,这里传的是 false
然后在点击 step into
image.png

我们在每一个 return 处设置一个断点,并点击 continue,会直接调用 _objc_rootAllocWithZone,我们进入到该函数

OC4.png
我们可以看出,该函数直接返回 _class_createInstanceFromZone函数的返回值,
OC5.png

这样的话,就完成了一个对象的初始化。

总结:

NSObject对象初始化的过程基本流程如下:


OC6.png
上一篇 下一篇

猜你喜欢

热点阅读