如何探索底层源码
从苹果官网获取oc底层源码,加入到工程中,就可以查看对应的源码。参考 cooci老师 的分享
alloc流程
1.底层源码加入成功之后,搜索alloc,查看alloc源码
2.进入_objc_rootAlloc方法
3.进入callAlloc方法,这里有一些判断,主要是判断是否有可重用的方法吧
4.进入到_class_createInstanceFromZone方法
这里主要做了三件事:
- 计算类大小(使用了属性字节的对齐方法,增加存取的效率)
- 开辟内存空间
- 关联该类
init方法做了什么
如图所示,返回了自己,说明并没有重新创建一个新的对象。
验证一下如下图
new方法做了什么
如图所示,调用了 alloc 和 init方法。采用new的方式只能采用默认的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法