一、load 和 initialize
-
load
-
在load中使用其他类是不安全的,因为其它类不一定加载完毕;
-
load方法不遵循继承规则,也就是说,如果某个类没有实现load方法,那么不管这个类的所有超类是否实现了这个方法,这个类都不会调用load
-
如果类和分类都实现了load方法,两个类都会执行load,类先执行,分类后执行;
-
实现了load方法的这个类,不管在程序运行中是否用到,程序在启动时都会把每个类中的load方法调用一次(这个和initialize不同)。
-
-
initialize
-
它是“惰性调用”,也就是说当程序用到这个类的时候才调用,而load是不管这个类是否被使用,程序加载时都会调用;
-
在调用initialize的时候,系统处于常态,所以在此方法内可以调用任何方法;
-
initialize方法与其他消息一样,如果某个类没有实现它,而其超类实现了它,那么就会运行超类的实现代码。
-
-
二者的调用时机
-
以main函数为分水岭,load在main函数之前,当应用程序启动时就会调用,initialize是在main函数之后。
-
二、大撒发顺丰