OC ISA 的去向图和类继承关系
最编程
2024-03-05 19:50:27
...
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#import <malloc/malloc.h>
#import "LGPerson.h"
#import "LGTeacher.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
LGPerson *p= [LGPerson alloc];
LGTeacher *t =[LGTeacher alloc];
NSObject *objc = [NSObject alloc];
//NSObject 类
Class class = object_getClass(objc);
// NSObject元类
Class metaClass = object_getClass(class);
// NSObject 根元类
Class rootClass = object_getClass(metaClass);
// NSObject 元类父类
Class o_superClass = class_getSuperclass(metaClass);
NSLog(@"\n%p NSObject实例对象\n%p 类\n%p 元类\n%p 根元类 \n%p 元类父类",objc, class, metaClass, rootClass, o_superClass);
//p 类
Class p_class = object_getClass(p);
// p元类
Class p_metaClass = object_getClass(p_class);
// p 根元类
Class p_rootClass = object_getClass(p_metaClass);
// p 元类父类
Class p_superClass = class_getSuperclass(p_metaClass);
NSLog(@"\n%p LGPerson实例对象\n%p 类\n%p 元类\n%p 根元类 \n%p 元类父类",p, p_class, p_metaClass, p_rootClass, p_superClass);
//t 类
Class t_class = object_getClass(t);
// p元类
Class t_metaClass = object_getClass(t_class);
// p 根元类
Class t_rootClass = object_getClass(t_metaClass);
// p 元类父类
Class t_superClass = class_getSuperclass(t_metaClass);
NSLog(@"\n%p LGTeacher实例对象\n%p 类\n%p 元类\n%p 根元类 \n%p 元类父类",t, t_class, t_metaClass, t_rootClass, t_superClass);
}
return 0;
}