- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
// 根据字符串返回类对象
// Class _Nullable objc_getClass(const char * _Nonnull name)
Class class1 = objc_getClass("ViewController");
// 返回对象的isa指针
// Class _Nullable object_getClass(id _Nullable obj)
/*
eg:参数为实例对象返回类对象
eg:参数为类对象返回元类对象
eg:参数为元类对象返回根元类对象
eg:参数为根元类对象返回自身
*/
// 返回类对象
Class class2 = object_getClass(self);
// 返回元类对象
Class class21 = object_getClass(class2);
// 返回根元类对象
Class class22 = object_getClass(class21);
// 返回根元类对象自身
Class class23 = object_getClass(class22);
// 总是返回类对象
Class class3 = [self class];
// 总是返回元类对象 Class _Nullable objc_getMetaClass(const char * _Nonnull name)
Class class4 = objc_getMetaClass("ViewController");
// 返回自身
Class class5 = [class3 class];
}
[id class]的内部实现
+ (Class)class {
return self;
}
- (Class)class {
return object_getClass(self);
}