什麼是runtime?函數
1> runtime是一套底層的C語言API(包含不少強大實用的C語言數據類型、C語言函數)對象
2> 實際上,平時咱們編寫的OC代碼,底層都是基於runtime實現的get
* 也就是說,平時咱們編寫的OC代碼,最終都是轉成了底層的runtime代碼(C語言代碼)io
runtime有啥用?class
1> 能動態產生一個類、一個成員變量、一個方法import
2> 能動態修改一個類、一個成員變量、一個方法變量
3> 能動態刪除一個類、一個成員變量、一個方法List
常見的函數、頭文件數據類型
#import <objc/runtime.h> : 成員變量、類、方法方法
Ivar * class_copyIvarList : 得到某個類內部的全部成員變量
Method * class_copyMethodList : 得到某個類內部的全部方法
Method class_getInstanceMethod : 得到某個實例方法(對象方法,減號-開頭)
Method class_getClassMethod : 得到某個類方法(加號+開頭)
method_exchangeImplementations : 交換2個方法的具體實現
#import <objc/message.h> : 消息機制
objc_msgSend(....)