iOS-20-runtime解析

http://ios.jobbole.com/84919/
http://www.reibang.com/p/f900de4a1495
實(shí)例對(duì)象instance->類(lèi)class->方法method(->SEL->IMP)->實(shí)現(xiàn)函數(shù)
實(shí)例對(duì)象只存放isa指針和實(shí)例變量怠益,由isa指針找到所屬類(lèi)乘综,類(lèi)維護(hù)一個(gè)運(yùn)行時(shí)可接收的方法列表余寥;方法列表中的每個(gè)入口是一個(gè)方法(Method)栈幸,其中key是一個(gè)特定名稱(chēng)妄荔,即選擇器(SEL)寓落,其對(duì)應(yīng)一個(gè)指向底層C實(shí)現(xiàn)函數(shù)的指針秘蛔,即實(shí)現(xiàn)(IMP)湃缎,糠排。運(yùn)行時(shí)機(jī)制最關(guān)鍵核心是objc_msgSend函數(shù)舵稠,通過(guò)給target(類(lèi))發(fā)送selecter(SEL)來(lái)傳遞消息,找到匹配的IMP入宦,指向?qū)崿F(xiàn)的C函數(shù)哺徊。

  • 類(lèi)相關(guān):
    + 數(shù)據(jù)類(lèi)型:class,object乾闰;
    - isa 元類(lèi)
    - superClass 根類(lèi)
    + 操作函數(shù):
    - class_:
    + get: 類(lèi)名落追,父類(lèi); 實(shí)例變量,成員變量涯肩;屬性轿钠;實(shí)例方法,類(lèi)方法病苗,方法實(shí)現(xiàn)疗垛;
    + copy: 成員變量列表;屬性列表硫朦;方法列表贷腕;協(xié)議列表;
    + add: 成員變量;屬性泽裳;方法瞒斩;協(xié)議;
    + replace:屬性涮总;方法胸囱;
    + respond:響應(yīng)方法判斷(內(nèi)省)
    + isMetaclass:元類(lèi)判斷(內(nèi)拭们洹)
    + conform:遵循協(xié)議判斷(內(nèi)释)
    - objc_:
    + get: 實(shí)例變量蔑鹦;成員變量夺克;類(lèi)名;類(lèi)嚎朽;元類(lèi);關(guān)聯(lián)對(duì)象;
    + copy: 對(duì)象唆姐;類(lèi)瑟押;類(lèi)列表;協(xié)議列表锅很;
    + set: 實(shí)例變量其馏;成員變量;類(lèi)爆安;類(lèi)列表叛复;協(xié)議;關(guān)聯(lián)對(duì)象扔仓;
    + dispose: 對(duì)象褐奥;
    - 動(dòng)態(tài)創(chuàng)建/銷(xiāo)毀類(lèi)、對(duì)象
  • 成員變量翘簇、屬性相關(guān):
    + 數(shù)據(jù)類(lèi)型:Ivar撬码;objc_property_t;objc_property_attribute_t版保;
    + 操作函數(shù):
    - ivar_:
    - property_:
  • 方法消息相關(guān):
    + 數(shù)據(jù)類(lèi)型:SEL呜笑;IMP; Method;方法緩存
    + 操作函數(shù):
    - method_:
    + invoke: 方法實(shí)現(xiàn)的返回值彻犁;
    + get: 方法名叫胁;方法實(shí)現(xiàn);參數(shù)與返回值相關(guān)袖裕;
    + set:方法實(shí)現(xiàn)曹抬;
    + exchange:交換方法實(shí)現(xiàn)
    + 方法調(diào)用:msgSend函數(shù)(找到方法實(shí)現(xiàn))
    + 消息轉(zhuǎn)發(fā):
    - Method Resolution
    - Fast Forwarding
    - Normal Forwarding
  • 協(xié)議相關(guān):
    + 數(shù)據(jù)類(lèi)型:Protocol;
    + 操作函數(shù):
    - protocol_:
    + get: 協(xié)議;屬性谤民;
    + copy:協(xié)議列表堰酿;屬性列表;
    + add:屬性张足;方法触创;協(xié)議;
    + isEqual:判斷兩協(xié)議等同为牍;
    + comform:判斷是否遵循協(xié)議哼绑;
  • 其他:類(lèi)名;版本號(hào)碉咆;類(lèi)信息抖韩;(忽略)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市疫铜,隨后出現(xiàn)的幾起案子茂浮,更是在濱河造成了極大的恐慌,老刑警劉巖壳咕,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件席揽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谓厘,警方通過(guò)查閱死者的電腦和手機(jī)幌羞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)竟稳,“玉大人属桦,你說(shuō)我怎么就攤上這事∽×罚” “怎么了地啰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)讲逛。 經(jīng)常有香客問(wèn)我亏吝,道長(zhǎng),這世上最難降的妖魔是什么盏混? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任蔚鸥,我火速辦了婚禮,結(jié)果婚禮上许赃,老公的妹妹穿的比我還像新娘止喷。我一直安慰自己,他們只是感情好混聊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布弹谁。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪预愤。 梳的紋絲不亂的頭發(fā)上沟于,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音植康,去河邊找鬼旷太。 笑死,一個(gè)胖子當(dāng)著我的面吹牛销睁,可吹牛的內(nèi)容都是我干的供璧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼冻记,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼睡毒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起檩赢,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吕嘀,失蹤者是張志新(化名)和其女友劉穎违寞,沒(méi)想到半個(gè)月后贞瞒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趁曼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年军浆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挡闰。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乒融,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摄悯,到底是詐尸還是另有隱情赞季,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布奢驯,位于F島的核電站申钩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瘪阁。R本人自食惡果不足惜撒遣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望管跺。 院中可真熱鬧义黎,春花似錦、人聲如沸豁跑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至狐蜕,卻和暖如春壶愤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馏鹤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工征椒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人湃累。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓勃救,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親治力。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蒙秒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,726評(píng)論 0 9
  • 我們常常會(huì)聽(tīng)說(shuō) Objective-C 是一門(mén)動(dòng)態(tài)語(yǔ)言宵统,那么這個(gè)「動(dòng)態(tài)」表現(xiàn)在哪呢晕讲?我想最主要的表現(xiàn)就是 Obje...
    Ethan_Struggle閱讀 2,199評(píng)論 0 7
  • 這篇文章完全是基于南峰子老師博客的轉(zhuǎn)載 這篇文章完全是基于南峰子老師博客的轉(zhuǎn)載 這篇文章完全是基于南峰子老師博客的...
    西木閱讀 30,569評(píng)論 33 466
  • 本文轉(zhuǎn)載自:http://yulingtianxia.com/blog/2014/11/05/objective-...
    ant_flex閱讀 767評(píng)論 0 1
  • 文起之始首正一繆,此之言香乃原始體味马澈,絕非香水之氣瓢省。 自古有云:聞香識(shí)女人。更有“幽蘭”之詞以贊之痊班。品美勤婚,只重其容...
    絕對(duì)瘋了閱讀 237評(píng)論 0 0