iOS总结-Runtime篇之用途及面试题的总结一黑魔法Method Swizzling
runtime的用途基本分下面幾類:
實現(xiàn)多繼承Multiple Inheritance
上一篇里面的最后利用methodSignatureForSelector來進行一次轉(zhuǎn)發(fā),在forwardInvocation方法里,Person將是send的方法轉(zhuǎn)移到可以實現(xiàn)send方法的gender對象,其實還是gender來實現(xiàn)的。類似于多繼承,好像看著是Person有了send方法,這就是實現(xiàn)了兩個完全沒有聯(lián)系的兩個對象實現(xiàn)了同一個方法,解耦性很強。
Method Swizzling
runtime的黑魔法,運行時將兩個Method進行exchange,本質(zhì)上是SEL 和IMP的互換。
也是AOP(面向切面編程)的一種實現(xiàn)方式,用在AOP 埋點統(tǒng)計 ?實現(xiàn)異常保護,數(shù)組越界
埋點統(tǒng)計
參照https://www.jianshu.com/p/0497afdad36d
數(shù)組越界
?
網(wǎng)上的好多demo,打印奔潰信息,引入工程后,照樣carsh,我親自嘗試后推薦https://github.com/chenfanfang/AvoidCrash,沒有問題。
?
總結(jié)
以上是生活随笔為你收集整理的iOS总结-Runtime篇之用途及面试题的总结一黑魔法Method Swizzling的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ps AO画法
- 下一篇: c语言画简谐振动图像,[求助] 实心小球