标签:style 调用次数 程序 依赖关系 函数 text 分类 多次 动态链接
APP 启动到执行 main 函数之前,程序就执行了很多代码。
执行顺序:
+(void)initialize 与 +(void)load 两个方法的比较
+load | +initialize | |
---|---|---|
调用时机 | 被添加 runtime 时 | 收到第一条消息时,也可能永远不调用 |
调用顺序 | 父类 -> 子类 -> 分类 | 父类 -> 子类 |
调用次数 | 1次 | 系统执行 1 次,手动可以调用多次 |
是否需要显式调用父类实现 | 否 | 否 |
是否沿用父类的实现 | 否 | 是 |
分类中的实现 | 类和分类都执行 | 分类覆盖类中的实现 |
initialize 方法的调用是线程安全的。
load的执行顺序:
initialize 的执行顺序:
第一次主动使用
当前类的时候。相同点:
不同点:
标签:style 调用次数 程序 依赖关系 函数 text 分类 多次 动态链接
原文地址:https://www.cnblogs.com/dins/p/12364703.html