load / initialize

133 阅读1分钟

load 方法

1 当类加载到oc运行时环境(内存)中的时候,就会调用一次,一个类只会加载一次

2 程序一启动就会调用

3 程序运行过程中,只会调用一次

initialize 方法

1 当第一次使用这个类的时候,比如调用了类的某个方法,才会调用

2 并非程序一启动就会调用

load和initialize 的共同特点:

不考虑开发主动使用的情况下,系统最多会调用一次 如果父类和子类都被调用,父类的调用一定再子类之前 都是为了应用运行提前创建合适的运行环境 ,都不要过重地依赖这2个方法,除非真正必要,他们相同点在于方法只会被调用一次

load 是只要类所在文件被引用就会被调用,而 initialize 是在类或者其子类的第一个方 法被调用前调用。所以如果类没有被引用进项目,就不会有 load 调用;但即使类文件被引用进 来,但是没有使用,那么 initialize 也不会被调用。

load和 initialize区别

1 执行时机: load 程序运行后立即执行,initialize在类的方法第一次被调用时执行

2 若自身未定义,是否沿用父类的方法? load 不会, initialize 是

3类别中的定义: 全都执行,但后于类中的方法 initialize覆盖类中的方法,只执行一个