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












网友评论