需要知識(shí)
class_ro ,class_rw
分類中重寫了原類方法導(dǎo)致原類中的方法被覆蓋了狠怨,category的底層實(shí)現(xiàn)是在加載的時(shí)候约啊,把category中的方法添加到原類的方法列表中,當(dāng)調(diào)用方法時(shí)會(huì)遍歷方法列表找到對(duì)應(yīng)的響應(yīng)子就返回佣赖,不再向下遍歷恰矩。因?yàn)閏ategory的優(yōu)先級(jí)高于類的優(yōu)先級(jí),使得原類中的選擇子遍歷不到憎蛤。
這時(shí)候如果想在分類方法中調(diào)用原方法改怎么做呢外傅?
可以去遍歷方法列表,去查詢最后一個(gè)test方法的selector,然后獲取方法的指針地址來執(zhí)行方法
如這樣:
image.png
找到方法列表的最后一個(gè)與目標(biāo)方法同名的方法然后去執(zhí)行即可