iOS runtime 理解

首先說一下什么是runtime:

RunTime簡稱運行時。就是系統(tǒng)在運行的時候的一些機(jī)制,其中最主要的是消息機(jī)制慰丛。對于C語言,函數(shù)的調(diào)用在編譯的時候會決定調(diào)用哪個函數(shù)( C語言的函數(shù)調(diào)用請看這里 )瘾杭。編譯完成之后直接順序執(zhí)行诅病,無任何二義性。OC的函數(shù)調(diào)用成為消息發(fā)送粥烁。屬于動態(tài)調(diào)用過程贤笆。在編譯的時候并不能決定真正調(diào)用哪個函數(shù)(事實證明,在編 譯階段讨阻,OC可以調(diào)用任何函數(shù)苏潜,即使這個函數(shù)并未實現(xiàn),只要申明過就不會報錯变勇。而C語言在編譯階段就會報錯)。只有在真正運行的時候才會根據(jù)函數(shù)的名稱找 到對應(yīng)的函數(shù)來調(diào)用贴唇。

舉例說明:

比如你[obj makeText]搀绣;

則運行時就這樣的:首先,編譯器將代碼[obj makeText];轉(zhuǎn)化為objc_msgSend(obj, @selector (makeText));戳气,在objc_msgSend函數(shù)中链患。首先通過obj的isa指針找到obj對應(yīng)的class。在Class中先去cache中 通過SEL查找對應(yīng)函數(shù)method(猜測cache中method列表是以SEL為key通過hash表來存儲的瓶您,這樣能提高函數(shù)查找速度)麻捻,若 cache中未找到。再去methodList中查找呀袱,若methodlist中未找到贸毕,則取superClass中查找。若能找到夜赵,則將method加 入到cache中明棍,以方便下次查找,并通過method中的函數(shù)指針跳轉(zhuǎn)到對應(yīng)的函數(shù)中去執(zhí)行

已下是相關(guān)資料:http://blog.csdn.net/indulgein/article/details/51111472

http://zhidao.baidu.com/link?url=LZudyCopBr1cWuGZBOP-DXRXmunqV9BbIgyXvrhQgtriVDJn8VgPvDPxbfrPu17jc1ZvVSdASGYHn-8BrzILjSroZ01QYM2olYThamDeuf3

http://blog.csdn.net/mingge0107/article/details/50525220

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寇僧,一起剝皮案震驚了整個濱河市摊腋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘁傀,老刑警劉巖兴蒸,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異细办,居然都是意外死亡橙凳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痕惋,“玉大人区宇,你說我怎么就攤上這事≈荡粒” “怎么了议谷?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長堕虹。 經(jīng)常有香客問我卧晓,道長,這世上最難降的妖魔是什么赴捞? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任逼裆,我火速辦了婚禮,結(jié)果婚禮上赦政,老公的妹妹穿的比我還像新娘胜宇。我一直安慰自己,他們只是感情好恢着,可當(dāng)我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布桐愉。 她就那樣靜靜地躺著,像睡著了一般掰派。 火紅的嫁衣襯著肌膚如雪从诲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天靡羡,我揣著相機(jī)與錄音系洛,去河邊找鬼。 笑死略步,一個胖子當(dāng)著我的面吹牛描扯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播趟薄,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼荆烈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了竟趾?” 一聲冷哼從身側(cè)響起憔购,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岔帽,沒想到半個月后玫鸟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡犀勒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年屎飘,在試婚紗的時候發(fā)現(xiàn)自己被綠了妥曲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡钦购,死狀恐怖檐盟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情押桃,我是刑警寧澤葵萎,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站唱凯,受9級特大地震影響羡忘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜磕昼,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一卷雕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧票从,春花似錦漫雕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至先馆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躺彬,已是汗流浹背煤墙。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留宪拥,地道東北人仿野。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像她君,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉寺擂,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,732評論 0 9
  • ping怎么這么高杀迹? 什么是Runtime? 這還要說校镐?run( 運行)亿扁、time(時),runtime(運行時)...
    大大盆子閱讀 656評論 1 1
  • 什么是runtime 說到runtime鸟廓,根據(jù)字面意思就是運行期間从祝。但我覺得首先應(yīng)該說一下oc到底是個什么東西襟己。首...
    Patrick_p閱讀 517評論 0 4
  • 在我們剛剛開始學(xué)習(xí)oc這門語言時,總有一些詞我們在各種基礎(chǔ)入門教程上反復(fù)提到牍陌,例如擎浴,Objective-C語言是一...
    百有異用是書生閱讀 797評論 0 51
  • Runloop 做了一年多的IOS開發(fā),對IOS和Objective-C深層次的了解還十分有限毒涧,大多還停留在會用A...
    GitHubPorter閱讀 6,066評論 7 17