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 Inicialización de clase (cargar, inicializar)
Person *p=[[Person alloc]init];
Class c=[p class];
[Person test];
[c test];
Person *p2=[[c new]init];
NSLog(@"Person ---%d",p2.age);
Cuatro + carga y + inicialización
4.1 + carga
Todas las clases y categorías se cargan cuando se inicia el programa, y el método + load de todas las clases y categorías se llama
Cargue la clase primaria primero, luego cargue la subclase: es decir, primero llame + cargue de la clase primaria, y luego llame + cargue de la subclase
Cargue la metaclase original primero y luego cargue la categoría
Independientemente de si esta clase es útil cuando el programa se está ejecutando, se llamará a + load para cargar
4.2 + inicializar
Cuando usa una clase por primera vez (como crear un objeto, etc.), el método + initialize se llamará una vez
Una clase solo llamará al método + initialize una vez, primero llama a la clase padre, luego llama a la subclase
4.3 2 formas de obtener objetos de clase
//方式一
Class c=[Person class];//类方法
方式二
Person *p=[Person new];
Class c2=[p class];//对象方法