iOS [Object alloc]底层流程

2020-09-06  本文已影响0人  SurpleXie
01

1.根据以上试图(图01) ,点击alloc进入 底层Object中的alloc方法(图02)

图02

2.点击_objc_rootAlloc方法查看,_objc_rootAlloc return callAlloc方法(图03)

图03

3.点击callAlloc方法(图04)

图04

4.进入_objc_rootAllocWithZone方法(图05)

图05

5.点击_class_createInstanceFromZone进入该方法(图06)

图06

6.size_t size是开辟对象的内存大小, 返回的是16字节的倍数(图07)

图07

7.再通过 obj->initInstanceIsa(cls, hasCxxDtor)方法把传进来的cls和size中objc进行绑定(图08)

图08

这样就把NSObject的内存空间就开辟成功了

流程图如下(图09)

图09
上一篇下一篇

猜你喜欢

热点阅读