类的初始化过程中有两个比较重要的方法 + (void)load +(void)initialize
这两个方法是自动调用的
- load 方法在程序启动的时候的每个类的 load 方法都会被调用一次,注意是每个类的 load 方法,不是对象的,程序启动的时候
- initialize 方法在类被初始化的时候会调用一次,注意初始化,
- 调用顺序是先调用 父类的,再调用子类的
- 只有在第一次使用的时候才会调用初始化方法,再次使用的时候不会初始化
分类
分类中也是包含 +(void)load 方法和 +(void)initialize 方法的,不同的是 分类的 load 方法在程序启动的时候也会调用,但是如果分类有 initialize 方法,就不会调用原来的类的 initialize 方法
另外,alt + 鼠标左键在 load 方法上,有显示是这样的
A class’s +load method is called after all of its superclasses’ +load methods.
一个类的 load 方法会在所有的父类 load 方法调用以后调用
A category +load method is called after the class’s own +load method
一个分类的 load 方法会在类本身的 load 方法调用以后调用