https://juejin.im/post/593f77085c497d006ba389f0
面試:消息機(jī)制方法調(diào)用流程
怎么去調(diào)用eat方法蜀细,對(duì)象方法:(保存到類對(duì)象的方法列表) ,類方法:(保存到元類(Meta Class)中方法列表)等浊。
1.OC 在向一個(gè)對(duì)象發(fā)送消息時(shí)欲诺,runtime庫會(huì)根據(jù)對(duì)象的isa指針找到該對(duì)象對(duì)應(yīng)的類或其父類中查找方法抄谐。。
2.注冊(cè)方法編號(hào)(這里用方法編號(hào)的好處扰法,可以快速查找)蛹含。
3.根據(jù)方法編號(hào)去查找對(duì)應(yīng)方法。
4.找到只是最終函數(shù)實(shí)現(xiàn)地址塞颁,根據(jù)地址去方法區(qū)調(diào)用對(duì)應(yīng)函數(shù)浦箱。
補(bǔ)充:一個(gè)objc對(duì)象的isa的指針指向什么吸耿?有什么作用?
每一個(gè)對(duì)象內(nèi)部都有一個(gè)isa指針酷窥,這個(gè)指針是指向它的真實(shí)類型咽安,根據(jù)這個(gè)指針就能知道將來調(diào)用哪個(gè)類的方法。
runtime 常見作用
1蓬推,動(dòng)態(tài)交換兩個(gè)方法的實(shí)現(xiàn)
2妆棒,動(dòng)態(tài)添加屬性
3,實(shí)現(xiàn)字典轉(zhuǎn)模型的自動(dòng)轉(zhuǎn)換
4沸伏,發(fā)送消息
5糕珊,動(dòng)態(tài)添加方法
6,攔截并替換方法
7毅糟,實(shí)現(xiàn) NSCoding 的自動(dòng)歸檔和解檔