講述一下runtime的概念,message send如果尋找不到相應(yīng)的對(duì)象,會(huì)如何進(jìn)行后續(xù)處理 ?

簡(jiǎn)單來說,Objective-C runtime是一個(gè)實(shí)現(xiàn)Objective-C語言的C庫(kù)。對(duì)象可以用C語言中的結(jié)構(gòu)體表示,而方法(methods)可以用C函數(shù)實(shí)現(xiàn)。事實(shí)上,他們 差不多也是這么干了,另外再加上了一些額外的特性。這些結(jié)構(gòu)體和函數(shù)被runtime函數(shù)封裝后,Objective-C程序員可以在程序運(yùn)行時(shí)創(chuàng)建,檢 查,修改類,對(duì)象和它們的方法。

runtime不需要知道Foundation。runtime會(huì)讓程序定義轉(zhuǎn)發(fā)函數(shù) (forwarding function),當(dāng)objc_msgSend()無法找到該selector的實(shí)現(xiàn)時(shí),那個(gè)轉(zhuǎn)發(fā)函數(shù)就會(huì)被調(diào)用。程序一啟動(dòng),CoreFoundation就將-forwardInvocation:定義成轉(zhuǎn)發(fā)函數(shù)。

參考網(wǎng)站http://mobile.51cto.com/hot-434685.htm

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇文章完全是基于南峰子老師博客的轉(zhuǎn)載 這篇文章完全是基于南峰子老師博客的轉(zhuǎn)載 這篇文章完全是基于南峰子老師博客的...
    西木閱讀 30,892評(píng)論 33 466
  • 消息發(fā)送和轉(zhuǎn)發(fā)流程可以概括為:消息發(fā)送(Messaging)是 Runtime 通過 selector 快速查找 ...
    lylaut閱讀 1,989評(píng)論 2 3
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,067評(píng)論 0 9
  • 轉(zhuǎn)載:http://yulingtianxia.com/blog/2014/11/05/objective-c-r...
    F麥子閱讀 835評(píng)論 0 2
  • 繼上Runtime梳理(四) 通過前面的學(xué)習(xí),我們了解到Objective-C的動(dòng)態(tài)特性:Objective-C不...
    小名一峰閱讀 848評(píng)論 0 3

友情鏈接更多精彩內(nèi)容