1:Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗?
- 有load方法
- load方法在runtime加载类、分类的时候调用
- load方法可以继承,但是一般情况下不会主动去调用load方法,都是让系统自动调用
2:initialize方法如何调用,以及调用时机
- 当类第一次收到消息的时候会调用类的initialize方法
- 是通过 runtime 的消息机制 objc_msgSend(obj,@selector()) 进行调用的
- 优先调用分类的 initialize, 如果没有分类会调用 子类的,如果子类未实现则调用 父类的
3:load、initialize方法的区别什么?它们在category中的调用的顺序?以及出现继承时他们之间的调用过程?
- load 是类加载到内存时候调用, 优先父类->子类->分类
- initialize 是类第一次收到消息时候调用,优先分类->子类->父类,会覆盖子类和父类的方法。只执行一次。
- 同级别和编译顺序有关系
- load 方法是在 main 函数之前调用的
054*: load、initialize 区别
原文:https://www.cnblogs.com/zyzmlc/p/14201006.html