美文网首页
iOS [Object alloc]底层流程

iOS [Object alloc]底层流程

作者: SurpleXie | 来源:发表于2020-09-06 00:05 被阅读0次
    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

    相关文章

      网友评论

          本文标题:iOS [Object alloc]底层流程

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