Runtime執行時機制

2021-08-20 20:45:45 字數 928 閱讀 9361

runtime又叫執行時,是一套底層的c語言api。

特性:oc在編譯的時候並不知道要呼叫那個方法函式,只有在執行的時候才知道呼叫方法函式名稱,來找到對應的方法函式進行呼叫。[c語言在編譯的時候就知道要呼叫那個方法函式]

runtime的作用

一.傳送訊息

每當乙個類建立了乙個方法的時候系統就會為這個方法進行乙個編號然後放在方法列表中。當方法進行呼叫的時候就去方法列表中進行查詢。

object在三種層面上與runtime系統進行互動

1.通過object-c源**

2.通過foundation框架的nsobject類定義的方法

3.通過對runtime庫函式的直接呼叫

object-c源**

多數情況我們只需要編寫oc**即可,runtime系統自動在幕後搞定一切,編譯器會將oc**轉換成執行時**,在執行時確定資料結構和函式。

通過foundation框架的nsobject類定義的方法

cocoa程式中絕大部分都是nsobject類的子類,所以都繼承了nsobject的行為。(nsproxy 類時個例外,它是個抽象超類)

一些情況下,nsobject類僅僅定義了完成某件事情的模板,並沒有提供所需要的**。

還有一些nsobject的方法可以從runtime系統中回去資訊,允許物件進行自我檢查

-class方法返回物件的類

iskindofclass和ismenberofclass方法檢查物件是否存在指定的類的繼承體系中

respondstoselector檢查物件能否響應指定的訊息

conformstoprotocol檢查物件是否實現了指定協議類的方法

methodforselector返回指定方法實現的位址

一些runtime的術語的資料結構

sel它是selector在oc中的表示(swift中是selector類)

runtime 執行時機制

首先,第乙個問題,1 runtime實現的機制是什麼,怎麼用,一般用於幹嘛?這個問題我就不跟大家繞彎子了,直接告訴大家,runtime是一套比較底層的純c語言api,屬於1個c語言庫,包含了很多底層的c語言api。在我們平時編寫的oc 中,程式執行過程時,其實最終都是轉成了runtime的c語言 r...

runtime 執行時機制

必備常識 1.ivar 成員變數 2.method 成員方法相關應用 1.nscoding 歸檔和解檔,利用runtime遍歷模型物件的所有屬性 2.字典 模型 利用runtime遍歷模型物件的所有屬性,根據屬性名從字典中取出對應的值,設定到模型的屬性上 3.kvo 利用runtime動態產生乙個類...

runtime 執行時機制

runtime 執行時機制 一 runtime是什麼 1 runtime是乙個全動態語言,是基於c語言的庫,裡面包含了很多底層的c語言函式。2 平時編寫的oc 在程式執行過程中,其實最終都是轉成了runtime的c語言 runtime算是oc方法的底層實現,換句話說oc的實現也就是runtime的底...