学习笔记:Category 中的load方法 1

2019-08-16  本文已影响0人  肖皖

load方法在runtime加载类、分类的时候调用,只调用一次,和+test方法不同。

load方法不管是否使用都会加载到内存中

分类的load和本类的方法 都会调用


prepare_load_methods内的 add_class_to_loadable_list方法(通过递归),

1、继承关系:先调用父类的load,再调用子类的方法,

2、分类:只和编译顺序有关(包括父子分类关系和同级多分类)。


call_load_methods方法

call_load_methods()方法 优先调用本类load

load_method指针

在本类中

loadable_classes数组

在分类中

普通+test方法通过消息机制objc_mesSend(类对象,方法),给类对象发送一条test消息,根据类对象的isa找到元类对象里面的方法列表,进行遍历在分类里找,然后再本类里,再到父类里找有没有。

总结

上一篇下一篇

猜你喜欢

热点阅读