1.load方法和initialize的使用:load方法是文件资源(.h,.m)被程序建在的时候调用,只是纯加载文件资源,加载到内存;initialize方法是类第一次被使用的时候,有懒加载的调用,如果在程序的运行过程中,若类一直没有被使用到,就不会调用这个类的initialize的方法.两者使用主要是在main函数作为分水岭,load是在main函数执行前,为initialize是在main函数后执行.
2.load方法和initialize的使用注意:当子类调用了load方法,也会调用父类的load方法,若子类没有调用load方法,不会调用父类的load方法;当子类调用了initialize方法,也会调用了父类的initialize方法,若子类不调用initialize方法,父类也会执行initialize方法(父类会加载自身调用一次initialize方法,子类调用initialize,还会调用一次父类的initialize方法,所以调用两次initialize方法,耗费性能),
正确的使用方式:
+ (void)initialize {
if (self == [Parent class]) {
NSLog(@"Initialize Parent, caller Class %@", [self class]);
}
}