runtime是底層c語言的API 屬于一個(gè)語言庫 OC的代碼都是基于runtime的.最終運(yùn)行都會(huì)轉(zhuǎn)換為runtime的C語言的代碼,算是OC的幕后工作者. 可以動(dòng)態(tài)修改添加刪除成員變量和方法.
<在程序運(yùn)行中,動(dòng)態(tài)的創(chuàng)建一個(gè)類.
在程序運(yùn)行中,動(dòng)態(tài)的添加一個(gè)屬性/方法,動(dòng)態(tài)的屬性和方法,會(huì)遍歷一個(gè)類的所有屬性和方法.
我們所寫的OC的代碼終會(huì)編譯成c++文件.生成.opp文件.
<對(duì)于C語言對(duì)于函數(shù)調(diào)用在編譯的時(shí)候就確定了調(diào)用哪個(gè)那個(gè)函數(shù).C語言的函數(shù)未實(shí)現(xiàn)就會(huì)報(bào)錯(cuò).
對(duì)于OC函數(shù)來說,屬于動(dòng)態(tài)的調(diào)用過程,在編譯的時(shí)候無法確定是調(diào)用哪個(gè)函數(shù),只有字調(diào)用的時(shí)候根據(jù)函數(shù)名去找函數(shù).所以O(shè)C得函數(shù)只聲明不實(shí)現(xiàn)也不會(huì)報(bào)錯(cuò).