一、alloc流程

1.objc_alloc--callAlloc 只走一次
2.alloc的主要作用是计算所需内存空间(instanceSize),开辟内存空间(calloc),绑定isa指针(initInstanceIsa)。
二、init作用
工厂设计模式,留一个入口。
三、内存对齐
1.对象占用大小是8字节对齐,关键函数 word_align()

2.系统分配内存大小是16字节对齐

四、底层探索方式
1、汇编分析
2、LLDB分析
3、源码分析
五、isa流程图

六、对象属性在内存中的布局
首先是ISA指针,也就是栈顶指针,然后是属性指针。基本数据类型会组合在一起。
七、ISA指针结构
网友评论