Person *p1=[[Person alloc]init];
Person *p2=[[Person alloc]init];
Person *p3=[[Person alloc]init];
Class c1=[p1 class];
Class c2=[p2 class];
Class c3=[Person class];
NSLog(@"c1=%p,c2=%p,c3=%p",c1,c2,c3);
3.2 类的初始化(load,initialize)
Person *p=[[Person alloc]init];
Class c=[p class];
[Person test];
[c test];
Person *p2=[[c new]init];
NSLog(@"Person ---%d",p2.age);
四 +load和+initialize
4.1 +load
在程序启动时就会加载所有的类和分类,并调用所有类和分类的+load方法
先加载父类,再加载子类:也就是先调用父类的+load,再调用子类的+load
先加载元原始类,再加载分类
不管程序运行过程中有木有用到这个类,都会调用+load加载
4.2 +initialize
在第一次使用某个类时(比如创建对象等)就会调用一次+initialize方法
一个类只会调用一次+initialize方法,先调用父类的,再调用子类的
4.3 获取类对象的2种方式
//方式一
Class c=[Person class];//类方法
方式二
Person *p=[Person new];
Class c2=[p class];//对象方法