A原理/底层iOS开发记录

读读objc源码(一):类的加载

2017-07-25  本文已影响63人  FindCrt

起始

不知道源码如盲人摸象,只能靠猜,最近才知道OC的一些代码是开源的,有很多值得待发掘的东西。
objc源码地址, 或者使用有人做的可编译版。可以查看源码,还可以修改调试,非常好!

本文用的是objc4-706

+load方法

load方法流程.png

看完代码之后有几个点值得注意:

+initialize方法

initialize方法流程.png

类的方法列表、属性、协议的加载

因为category的存在,类实际的列表、属性、协议是需要整合的,甚至可能category定义在另一个静态库里。

方法列表和属性、协议列表几乎是一起处理的,加载的逻辑是是一样的,所以就只做了方法列表的图。

类的方法列表整合流程.png
上一篇下一篇

猜你喜欢

热点阅读