Runtime深入學(xué)習(xí)理解

1.什么是 runtime

1.runtime 本質(zhì)上是一套比較底層的 C語言,C++、匯編組成 API。我們稱之為運(yùn)行時(shí),在 runtime 的底層很多實(shí)現(xiàn)是為了性能效率方面,都直接用匯編代碼。

2.我們平時(shí)編寫的 OC 代碼,需要 runtime 來創(chuàng)建類和對(duì)象,進(jìn)行消息發(fā)送和轉(zhuǎn)發(fā),其實(shí)最終會(huì)轉(zhuǎn)換成 runtime 的 C 語言代碼。

3.runtime 是將數(shù)據(jù)類型的確定由編譯時(shí)推遲到了運(yùn)行時(shí)。

2.為什么要用 runtime

1.OC 是一門動(dòng)態(tài)語言,他會(huì)將一些工作放在代碼運(yùn)行時(shí)才去處理而非編譯時(shí),因此編譯器不夠,我們還需要一個(gè)運(yùn)行時(shí)系統(tǒng)來處理編譯后的代碼

2.runtime 基本是用 C 和匯編語言寫的,蘋果和 CNU 各自維護(hù)一個(gè)開源的 runtime 版本,這倆個(gè)版本之間都高度的保持一致。

3.runtime 有什么作用?

1.消息傳遞、轉(zhuǎn)發(fā)<消息機(jī)制>

2.訪問私有變量

3.交換系統(tǒng)方法

4.動(dòng)態(tài)增加屬性、方法

5.為分類添加屬性

6.字典轉(zhuǎn)模型

1.runtime 怎么添加屬性、方法等

ivar 表示成員變量,class_addIvar、class_addMethod、class_addProperty、class_addProtocol、class_replaceProperty

1.1動(dòng)態(tài)添加屬性

需求:給 NSObject 添加一個(gè)name 屬性,動(dòng)態(tài)添加屬性-->

?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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