10- Runtime實(shí)用上手范例

RuntimeUseCases

Runtime的一些使用案例和場(chǎng)景.

前話

這段時(shí)間繼續(xù)學(xué)習(xí)了下Runtime.在網(wǎng)上找到了兩篇比較好的文章.比起其他的概念性的非常強(qiáng)的概念性的描述,非常適合初學(xué)者入門.由此我也覺得,遇到陌生的知識(shí),我們先用,有個(gè)大體印象之后,然后再研究對(duì)應(yīng)的底層原理,直接啃底層,不是十分明智的想法.

第一部分 -《OC最實(shí)用的runtime總結(jié),面試、工作你看我就足夠了!》

代碼

上邊的代碼范例,主要是是從《OC最實(shí)用的runtime總結(jié),面試、工作你看我就足夠了!》的代碼做了一個(gè)具體的抽取,方便吧大家學(xué)習(xí)和查看.作者原標(biāo)題的有點(diǎn)浮夸,但是內(nèi)容確實(shí)寫的很好!

  • Runtime_ClassMethodAndImplementationsMethodDeals - 獲取類方法和實(shí)例方法,并且交換方法
  • Runtime_ReplaceSystemMethod - 攔截系統(tǒng)方法,并且替換
  • Runtime_CategoryAddAttribute - 給分類增加屬性
  • Runtime_NSCoding - Runtime歸檔解檔方法,不必一個(gè)一個(gè)添加屬性
  • Runtime_MJExtensionBase - 字典轉(zhuǎn)模型(MJExtension的基礎(chǔ)原理)

基礎(chǔ)方法說明

  • 獲得某個(gè)類的類方法
    Method class_getClassMethod(Class cls , SEL name)

  • 獲得某個(gè)類的實(shí)例對(duì)象方法
    Method class_getInstanceMethod(Class cls , SEL name)

  • 交換兩個(gè)方法的實(shí)現(xiàn)
    void method_exchangeImplementations(Method m1 , Method m2)

  • 獲得某個(gè)類的所有成員變量(outCount 會(huì)返回成員變量的總數(shù)) 參數(shù): 1、哪個(gè)類 2、放一個(gè)接收值的地址,用來存放屬性的個(gè)數(shù) 3、返回值:存放所有獲取到的屬性,通過下面兩個(gè)方法可以調(diào)出名字和類型
    Ivar *class_copyIvarList(Class cls , unsigned int *outCount)

  • 獲得成員變量的名字
    const char *ivar_getName(Ivar v)

  • 獲得成員變量的類型
    const char *ivar_getTypeEndcoding(Ivar v)

更加具體的實(shí)現(xiàn)過程,還需要我們自己點(diǎn)開文章跟著作者親自來一遍.代碼鏈接

第二部分

交流

希望能和大家交流技術(shù)

我的博客地址: http://www.lilongcnc.cc/


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容