對象 類對象 元類
- 對象的isa指針指向類對象
- 類對象的isa指針指向元類
- 類對象和元類其他都是對象,是編譯器爲我們創建的。
對象初始化
- 先根據類對象初始化內存大小。
- 初始化對象isa指針即可。
方法的調用
- 對象方法的調用。實際上根據對象isa去類對象去查找對象方法去調用。找不到就去類對象的superCls指針去父類對象去查找,再找不到就進行消息轉發。沒有實現消息轉發那就會崩潰。
- 類方法的調用。實際上我們代碼用的類就是類對象。根據類對象isa指針去元類對象查找方法去調用,也會查找父類的元類對象。過程和對象方法調用類似。