1.load 在类或者类目被添加到runtime的时候加载一次,initialize是类第一次收到消息的时候被加载,load是在main函数之前,initialize是在main函数之后。
2.load方法的调用顺序是:superClass -> class -> category;initialize方法的调用顺序是:superClass -> class。都不需要显示调用父类的方法,系统会自动调用,load方法是函数指针调用,initialize是发送消息。子类如果没有实现load函数,子类是不会调用父类的load函数的,但是子类没有实现initialize函数,则会调用父类的initialize函数。
3.load和initialize内部实现都加了线程锁,是线程安全的,因此,这两个函数应该做一些简单的工作,不适合复杂的工作。
4.load函数通常用来进行Method Swizzle,initialize函数则通常初始化一些全局变量,静态变量。