关于 NSobject
NSobject-> A -> B
1 | struct NSObject_IMPL { |
1 | @``interface` `A : NSObject |
1 | struct A { |
1 | struct A { |
1 | @``interface` `B : A |
instance
的isa
指向class
class
的isa
指向meta-class
meta-class
的isa
指向基类的meta-class
class
的superclass
指向父类的class
,如果没有父类,superclass指针为nilmeta-class
的superclass
指向父类的meta-class
,基类的meta-class的superclass指向基类的classisa(of instance) –> isa(of class) –> isa(of meta-class)
面试题解答
- 对象的isa指针指向哪里?
instance
对象的isa
指针指向class
对象class
对象的isa
指针指向meta-class
对象meta-class
对象的isa
指针指向基类(也就是NSObject)的meta-class
对象
- OC的类信息存放在哪里?
- 对象方法,属性信息,成员变量信息,协议信息,存放在
class
对象中- 类方法,存放在
meta-class
对象中- 成员变量的具体值,存放在
instance
对象中