什么是runtime
1> runtime是一套底層的c語言API(包括很多強(qiáng)大實(shí)用的c語言類型,c語言函數(shù));
2>實(shí)際上,平時(shí)我們編寫的oc代碼,底層都是基于runtime實(shí)現(xiàn)的
- 也就是說,我們平時(shí)編寫的oc代碼,最終都是轉(zhuǎn)成了底層的runtime代碼(c語言代碼) ;
runtime有啥用?
1>能動態(tài)生成一個類,一個成員變量,一個方法
2>能動態(tài)修改一個類,一個成員變量,一個方法
3>能動態(tài)刪除一個類,一個成員變量,一個方法
常見的函數(shù),頭文件
<pre>#import<objc/runtime.h> : //成員變量,類,方法
class_copyIvarList : 獲得某個類內(nèi)部的所有成員變量
class_copyMethodList : 獲得某個類內(nèi)部的所有方法
class_getInstanceMethod : 獲得某個具體的實(shí)例方法 (對象方法,減號-開頭)
class_getClassMethod : 獲得某個具體的類方法 (加號+開頭)
method_exchangeImplementations : 交換兩個方法的實(shí)現(xiàn)
import<objc/message.h> : //消息機(jī)制
objc_msgSend(...)</pre>