load和initialize的区别

来源:互联网 发布:java json与xml转换 编辑:程序博客网 时间:2024/06/12 01:36
@implementation Person// 只要程序启动就会将所有类的代码加载到内存中, 放到代码区(无论该类有没有被使用到都会被调用)// load方法会在当前类被加载到内存的时候调用, 有且仅会调用一次// 如果存在继承关系, 会先调用父类的load方法, 再调用子类的load方法+ (void)load{    NSLog(@"Person类被加载到内存了");}// 当当前类第一次被使用的时候就会调用(创建类对象的时候)// initialize方法在整个程序的运行过程中只会被调用一次, 无论你使用多少次这个类都只会调用一次// initialize用于对某一个类进行一次性的初始化// initialize和load一样, 如果存在继承关系, 会先调用父类的initialize再调用子类的initialize+ (void)initialize{    NSLog(@"Person initialize");}@end



#import "Person.h"int main(int argc, const char * argv[]) {//    Person *p1 = [[Person alloc] init]; // 只打印一次"Person initialize", 后面在调用都不会打印了//    Person *p2 = [[Person alloc] init];//    Person *p3 = [[Person alloc] init];//    Person *p4 = [[Person alloc] init];        return 0;}


0 0
原创粉丝点击