关于使用alloc创建对象底层分析
2020-09-07 本文已影响0人
h_清风
路漫漫其修远兮,吾将上下而求索!
底层源码需要先下载objc4-781
对底层源码探索有三种形式
1.下符号断点的形式(Symbolic Breakpoint 符号断点)直接跟流程走;
2.打全局断点通过摁住control - step into一步步执行;
3.通过汇编形式查看(Debug -> Debug Workflow -> Always show Disassembly )
下面是通过断点形式走的alloc底层流程
1.当使用alloc创建对象之后,第一步底层先执行_objc_rootAlloc方法;
2.执行完_objc_rootAlloc会走callAlloc方法
3.接下来会执行_objc_rootAllocWithZone方法
4.执行_class_createInstanceFromZone方法
5.计算大小、开辟内存及返回