蘋果的底層是C語言,OC是基于C的再次封裝尤仍,加了一些關(guān)鍵字和語法等箫津,他的本質(zhì)是消息分發(fā)。
runtime能干什么:在程序運行時可以獲取當(dāng)前類的所有:對象宰啦、方法苏遥、屬相,成員變量赡模,并且能夠隨時去改變它田炭。
消息分發(fā):發(fā)消息之前不用管那個對象能夠處理消息,一個消息不必對應(yīng)一個方法纺裁,一個對象可能實現(xiàn)一個方法來處理多條消息诫肠。收到之后再去分配給對象。在OC中是通過objc_msgSend()來實現(xiàn)的欺缘。
實例:比如我要循環(huán)獲取符合條件的某個對象栋豫,我可以直接用NSSelectorFromString獲取符合條件的字符串對象,在進行相應(yīng)的操作谚殊,不要在一次一次的去if else了丧鸯。
Method Swizzling(交換方法):實例,在友盟分享的頁面統(tǒng)計上嫩絮。
一些擴展類比較常用運行時丛肢,擴展類跟定要獲取擴展的對象围肥,此時用runTime是最好的。