load 与 initialize

load

  • load 加载方式是通过函数地址直接调用的,不是通过消息发送机制调用
  • load 是在main函数调用之前,加载到程序的时候调用,只执行一次
  • load 的调用顺序
    1.本类 ----- 子类 -------- 分类 (每个 load 方法都会被调用,每个本类的调用顺序不确定,如果不实现load方法,不会调用)
    2.一个类的+load方法不用写明[super load],父类就会收到调用。

initialize

  • 是在main函数之后收到第一个消息之前调用,是通过消息发送机制方式调用
  • initialize 的调用顺序
    • 继承:如果子类没有实现 initialize 方法,会把父类的实现继承过来调用一遍
    • 父类和本类: 如果本类实现 initialize 方法,父类与本类方法都会带用,如果本类没有实现 initialize方法,则会调用父类方法
    • 本类和Category:分类则会覆盖本类方法,本类方法不会被调用

你可能感兴趣的:(load 与 initialize)