Links

08.load与-initialize

+ load

  • 当类对象被引入时,runtime会向每一个类对象
  • load方法会在每一个类甚至分类被引入时仅调用一次.
  • 调用的顺序是:
    • 父类优先于子类,子类优先于分类
  • load方法不会被自动继承
    • 子类中没有+load方法时系统不会多次调用父类+load

使用场景

  • Method Swizzle

+ initialize

  • 第一次使用这个类的时候会调用这个方法-懒加载
    • 会在第一次使用第一个类方法或实例方法之前被调用

使用场景

  • 初始化全局变量或静态变量
  • load方法会被子类/分类继承
    • 如果子类没有实现+initialize方法,会调用父类的+initialize方法