关于+load 和+initialize 的区分
更深入的理解 传送门
更通俗一点的理解场景分析的 传送门
画圈的地方是输出结果,也是重点。
总结
load 只执行一次而且是在App启动之前就加载的,大多数这里会写一些runtime的实现。
子类利用runtime实现函数的处理也会影响父类(这里是重点要考虑的)。
比如我们在给 UINavigationController 的 viewDidLoad 利用runtime 加处理的时候,也会影响UIViewController。
从代码和打印结果来看,initialize 也是执行一次的(当然要使用的时候才执行)。不过其最后一层的子类调用过程中其父类,父类的父类都会受到影响。
Dome 传送门