iOS load 和 initialize方法

0 阅读1分钟

image.png

需要特别注意:initialize 的调用是懒加载的,而 load 是应用启动时就调用,这是它们最本质的区别。

load 只要实现了就会执行,只是在执行顺序有差异:父类 -> 子类 -> 分类 -> main 而分类的load方法顺序是按照Compile Sources顺序来执行的

initialize 如果类和类的分类都实现了只会执行分类的,每个类的 +initialize 最多被调用一次,执行顺序:父类的 +initialize → 子类的 +initialize(自动保证)

image.png