iOS开发

iOS object_getClass、objc_getClas

2020-07-15  本文已影响0人  BlackStar暗星

对于这几个方法的区别,首先需要了解 OC 类的数据结构,(任何runtime的文章都会介绍的)

对于 classobject_getClassobjc_getClass 三种方法,首先:全部返回 Class 类对象

Person *p = [[Person alloc]init];
Class *pClass == [p class] == [ [p class]class] == [[ [p class]class]class] == [Person class]
Person *p = [[Person alloc]init];     
p->[Person class]->PersonMeteClass->PersonMetaClass(元类的ISA指针是指向自己的)

意思是 p 的 isa 指向 [Person class] , [Person class] 的 isa 指向 PersonMeteClass



验证:通过 class_isMetaClass 方法可以验证(方法判断是否是元类)



上一篇 下一篇

猜你喜欢

热点阅读