【掃盲】---------什麼是Runtime?

在看到Node.js定義的時候看到的Runtime,不明白是啥,記錄一下。

Runtime又叫運行時,是一套底層C語言的API,其爲iOS內部的核心之一,我們平時編寫的OC代碼底層都是基於它來實現的。

Objective-C 是一門動態語言,它會將一些工作放在代碼運行時才處理而並非編譯時。也就是說,有很多類和成員變量在我們編譯的時是不知道的,而在運行時,我們所編寫的代碼會轉換成完整的確定的代碼運行。因此,編譯器是不夠的,我們還需要一個運行時系統(Runtime system)來處理編譯後的代碼。Runtime 基本是用 C 和彙編寫的。

 

Runtime是什麼?

  • 運行時(Runtime)是指將數據類型的確定由編譯時推遲到了運行時
  • Runtime是一套比較底層的純C語言API, 屬於1個C語言庫, 包含了很多底層的C語言API
  • 平時編寫的OC代碼,在程序運行過程中,其實最終會轉換成Runtime的C語言代碼,Runtime是Object-C的幕後工作者
  • Object-C需要Runtime來創建類和對象,進行消息發送和轉發

特性: 編寫的代碼具有運行時、動態特性

Runtime用來幹什麼?用在哪些地方?

用來幹什麼 基本作用

  • 在程序運行過程中,動態的創建類,動態添加、修改這個類的屬性和方法;
  • 遍歷一個類中所有的成員變量、屬性、以及所有方法
  • 消息傳遞、轉發

用在哪些地方 Runtime的典型事例

  • 給系統分類添加屬性、方法
  • 方法交換
  • 獲取對象的屬性、私有屬性
  • 字典轉換模型
  • KVC、KVO
  • 歸檔(編碼、解碼)
  • NSClassFromString class<->字符串
  • block
  • 類的自我檢測
  • ...



參考:
https://www.jianshu.com/p/291754a90d2b
https://blog.csdn.net/zhidaeryuan/article/details/78598929

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章