load

1、category中有load方法吗?load方法是什么时候调用的?方法能继承么?
1)有load方法
2)load方法在runtime加载类、分类的时候调用
3)load方法可以继承,但是一般情况下不会主动调用load方法,都是让系统自动调用
2、load initialize 方法的区别是什么?它们在category中调用的顺序?以及出现继承时他们之间的调用过程?
1)调用方式
1)load是根据函数地址直接调用
2)inintialize 是通过objc_msgSend调用
2)调用时刻
1)load是runtime加载类、分类的时候调用(只会调用一次)
2)initialize是类第一次接收消息的时候调用,每个类只会initialize一次(父类的initialize方法可能会被调用多次) 如果没有消息调用 是不执行initialize方法的

load、initialize 的调用顺序?
1)load
1)先调用父类的load
2)先编译的类、优先调用load
3)调用子类的load之前,会先调用父类的load
2)再调用分类的load
1)先编译的分类 优先调用load
3)initialize
1)先初始化父类
2)再初始化子类(可能最终调用的是父类的initialize)

你可能感兴趣的:(load)