前言
同一個方法,分類會覆蓋類的方法嗎?是刪除嗎?
看一下蘋果的源碼,runtime 對分類的方法進(jìn)行加載后和原類的方法列表是進(jìn)行了合并進(jìn)同一張?zhí)摫?。只是分類的方法會放在原類的前面?/p>
類和分類中l(wèi)oad的加載機制
- 類load中可以調(diào)用分類的方法,因為附加category到類的工作會先于+load方法的執(zhí)行
- +load的執(zhí)行順序是先類,后category,而category的+load執(zhí)行順序是根據(jù)編譯順序決定的。
isa 理解
類方法是被加載到meta-Class 的方法列表中。
類對象(實例)方法是被加載到類的方法列表中的。
注意調(diào)用方法時isa的指向。