對象的isa指針指向哪里?
instance對象的isa指向class對象
class對象的isa指向meta-class對象
meta-class對象的isa指向基類的meta-class對象OC的類信息存放在哪里?
對象方法、屬性、成員變量、協(xié)議信息,存放在class對象中
類方法,存放在meta-class對象中
成員變量的具體值,存放在instance對象
在instance對象中,包含的信息有:
1.isa指針

isa指針指向的內存關系圖
instance的isa指向class
當調用對象方法時,通過instance的isa找到class,最后找到對象方法的實現(xiàn)進行調用class的isa指向meta-class
當調用類方法時,通過class的isa找到meta-class,最后找到類方法的實現(xiàn)進行調用
2.class對象的superclass指針

class對象的superclass指針
- 當Student的instance對象要調用Person的對象方法時,會先通過isa找到Student的class,然后通過superclass找到Person的class,最后找到對象方法的實現(xiàn)進行調用
3.meta-class對象的superclass指針

meta-class對象的superclass指針
- 當Student的class要調用Person的類方法時,會先通過isa找到Student的meta-class,然后通過superclass找到Person的meta-class,最后找到類方法的實現(xiàn)進行調用
4.isa,superclass總結

isa,superclass
1.instance的isa指向class
2.class的isa指向meta-class
3.class的superclass指向父類的class
如果沒有父類,superclass指針為nil
4.meta-class的superclass指向父類的meta-class
基類的meta-class的superclass指向基類class
5.instance調用對象方法的軌跡
isa找到class,方法不存在,就通過superclass找父類
6.class調用類方法的軌跡
isa找meta-class,方法不存在,就通過superclass找父類