日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理

發(fā)布時(shí)間:2024/5/28 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Runtime

一、什么是 runtime ?
  • Objective-C 語(yǔ)言將盡可能多的決策從 編譯時(shí)和鏈接時(shí) 推遲到運(yùn)行時(shí)。只要有可能,它就 動(dòng)態(tài) 地做事情,這意味著該語(yǔ)言不僅需要一個(gè)編譯器,還需要一個(gè) 運(yùn)行時(shí)系統(tǒng) 來(lái)執(zhí)行編譯后的代碼。運(yùn)行時(shí)系統(tǒng)作為 Objective-C 語(yǔ)言的一種操作系統(tǒng),它使語(yǔ)言起作用。
  • 因?yàn)?Objc 是一門動(dòng)態(tài)語(yǔ)言,所以它總是想辦法把一些決定工作從編譯連接推遲到 運(yùn)行時(shí) 。也就是說(shuō)只有編譯器是不夠的,還需要一個(gè)運(yùn)行時(shí)系統(tǒng) (runtime system) 來(lái)執(zhí)行編譯后的代碼。這就是 Objective-C Runtime 系統(tǒng)存在的意義,它是整個(gè) Objc 運(yùn)行框架的一塊基石。
  • runtime 簡(jiǎn)稱運(yùn)行時(shí),OC 就是運(yùn)行時(shí)機(jī)制,其中最主要的是 消息機(jī)制 。對(duì)于 C 語(yǔ)言,函數(shù)的調(diào)用在編譯的時(shí)候會(huì)決定調(diào)用哪個(gè)函數(shù)。對(duì)于 OC 的函數(shù),屬于 動(dòng)態(tài)調(diào)用過(guò)程 ,在編譯的時(shí)候并不能決定真正調(diào)用哪個(gè)函數(shù),只有在真正運(yùn)行的時(shí)候才會(huì)根據(jù)函數(shù)的名稱找到對(duì)應(yīng)的函數(shù)來(lái)調(diào)用。
  • runtime 基本是用 C 和匯編 寫的,可見(jiàn)蘋果為了動(dòng)態(tài)系統(tǒng)的高效而作出的努力。
二、runtime 版本
  • runtime 有兩個(gè)版本:?個(gè) Legacy 版本(早期版本) ,?個(gè) Modern
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的iOS之深入解析Runtime的objc_msgSend“快速查找”底层原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。