iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理
生活随笔
收集整理的這篇文章主要介紹了
iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Runtime
一、什么是 runtime ?
- Objective-C 語言將盡可能多的決策從 編譯時和鏈接時 推遲到運行時。只要有可能,它就 動態 地做事情,這意味著該語言不僅需要一個編譯器,還需要一個 運行時系統 來執行編譯后的代碼。運行時系統作為 Objective-C 語言的一種操作系統,它使語言起作用。
- 因為 Objc 是一門動態語言,所以它總是想辦法把一些決定工作從編譯連接推遲到 運行時 。也就是說只有編譯器是不夠的,還需要一個運行時系統 (runtime system) 來執行編譯后的代碼。這就是 Objective-C Runtime 系統存在的意義,它是整個 Objc 運行框架的一塊基石。
- runtime 簡稱運行時,OC 就是運行時機制,其中最主要的是 消息機制 。對于 C 語言,函數的調用在編譯的時候會決定調用哪個函數。對于 OC 的函數,屬于 動態調用過程 ,在編譯的時候并不能決定真正調用哪個函數,只有在真正運行的時候才會根據函數的名稱找到對應的函數來調用。
- runtime 基本是用 C 和匯編 寫的,可見蘋果為了動態系統的高效而作出的努力。
二、runtime 版本
- runtime 有兩個版本:?個 Legacy 版本(早期版本) ,?個 Modern
總結
以上是生活随笔為你收集整理的iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS之深入解析AFNetworking
- 下一篇: iOS之深入解析Runtime的objc