关于+load 和+initialize 的区分
更深入的理解 传送门
更通俗一点的理解场景分析的 传送门

画圈的地方是输出结果,也是重点。
总结
load 只执行一次而且是在App启动之前就加载的,大多数这里会写一些runtime的实现。
子类利用runtime实现函数的处理也会影响父类(这里是重点要考虑的)。
比如我们在给 UINavigationController 的 viewDidLoad 利用runtime 加处理的时候,也会影响UIViewController。

从代码和打印结果来看,initialize 也是执行一次的(当然要使用的时候才执行)。不过其最后一层的子类调用过程中其父类,父类的父类都会受到影响。
Dome 传送门
本文详细解析了Objective-C中+load与+initialize方法的区别与应用场景。+load方法仅在App启动前执行一次,常用于runtime的实现;而+initialize则在类首次被使用时执行,影响所有子类及父类。文章通过代码示例和输出结果,深入浅出地解释了这两个方法的工作机制。
&spm=1001.2101.3001.5002&articleId=86593630&d=1&t=3&u=0230d967870e4fe3944b228c75ee3239)
3450

被折叠的 条评论
为什么被折叠?



