你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> Runtime相關整理

Runtime相關整理

編輯:IOS技巧綜合
[摘要]本文是對Runtime相關整理的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

一.Runtime是用C和匯編寫的

    對於C語言,函數的調用在編譯的時候會決定調用哪個函數。對於OC的函數,屬於動態調用過程,在編譯的時候並不能決定真正調用哪個函數,只有在真正運行的時候才會根據函數的名稱找到對應的函數來調用。

二.Runtime常用頭文件

  #import<objc/runtime.h>

  #import<objc/message.h>

三.Runtime常用函數

  class_copyIvarList:獲得某個類內部的素有成員變量

class_copyMethodList:獲得某個類內部的所有方法

class_getInstanceMethod:獲得某個具體的實例方法

class_getClassMethod:獲得某個具體的類方法

class_getMethodImplementation:獲取方法實現

method_exchangeImplementations:交換兩個方法的實現

objc_msgSend:給對象發送消息

class_addMethod:添加方法

objc_getAssociatedObject:根據關聯的key,獲取關聯的值

objc_setAssociatedObject:設置關聯屬性

四.Runtime使用場景

發送消息

交換方法

動態生成屬性,方法

通過block回調,直接調用action

歸檔,解檔

字典轉模型

五.Runtime各種使用場景的具體實現

1.發送消息

  

注意點:

  

  

2.交換方法

    因為不能直接在分類中重寫系統方法,例如imageNamed,這樣會把系統功能覆蓋掉,分類中不能調用super,所以需要用到交換方法來代替重寫。

  

3.動態生成屬性,方法

    如果一個類的方法非常多,加載類到內存的時候也比較資源,需要給每個方法生成映射表,動態生成方法則解決了這個問題。

  

  動態添加屬性

  

4.通過block回調,直接調用action

  

  //通過block回調,直接調用action

  

  

  

5.歸檔,解檔

  

  

  

6.字典轉模型

  KVC:遍歷字典中的所有key,去模型中查找有沒有對應的屬性名

  Runtime:遍歷模型中的所有屬性名,去字典中查找

  

  

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved