08.load与-initialize

+ load

  • 当类对象被引入时,runtime会向每一个类对象

  • load方法会在每一个类甚至分类被引入时仅调用一次.

  • 调用的顺序是:

    • 父类优先于子类,子类优先于分类

  • load方法不会被自动继承

    • 子类中没有+load方法时系统不会多次调用父类+load

使用场景

  • Method Swizzle

+ initialize

  • 第一次使用这个类的时候会调用这个方法-懒加载

    • 会在第一次使用第一个类方法或实例方法之前被调用

使用场景

  • 初始化全局变量或静态变量

  • load方法会被子类/分类继承

    • 如果子类没有实现+initialize方法,会调用父类的+initialize方法

Last updated