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