1.根据以上试图(图01) ,点击alloc进入 底层Object中的alloc方法(图02)
图022.点击_objc_rootAlloc方法查看,_objc_rootAlloc return callAlloc方法(图03)
图033.点击callAlloc方法(图04)
图044.进入_objc_rootAllocWithZone方法(图05)
图055.点击_class_createInstanceFromZone进入该方法(图06)
图066.size_t size是开辟对象的内存大小, 返回的是16字节的倍数(图07)
图077.再通过 obj->initInstanceIsa(cls, hasCxxDtor)方法把传进来的cls和size中objc进行绑定(图08)
图08这样就把NSObject的内存空间就开辟成功了
流程图如下(图09)
图09
网友评论