本系列主要是看完MJ的OC底層原理課程所寫的總結,但願本身能加深對iOS底層的瞭解。ui
NOTEspa
[[NSObject class] class] 返回的都是類對象 消息的主體仍是NSObject
複製代碼
當調用__對象方法__時,對象方法__保存在__類__的方法列表中,經過isa
__找到對象的類進行調用指針
當調用__類方法__時,類方法__保存在__Meta_Class__的方法列表中,經過isa
__找到類的Meta_Classs進行調用code
主要做用是找到父類,調用父類的資源cdn
子類對象要調用父類的對象方法( 對象方法存放在類中
),經過isa
指針找到本身的類,本身的類經過superClass找到父類,從父類的方法列表中找到調用的方法對象
子類要調用父類的類方法(類方法在meta-class對象中
)經過isa
指針找到本身的meta-class,meta-class經過superClass找到父類,從父類的類方法列表中找到調用的方法blog
注意因爲NSObject的superclass指向的是NSObject本身,若是經過Category給NSObject添加方法,當NSObject子類沒有實現該方法時,系統會來到NSObject的方法列表進行查找,若是找到同名的方法就會直接調用資源