消息分派器

Objective-C運(yùn)行時(shí)的核心就在于消息分派器objc_msgSend

實(shí)現(xiàn)簡單的消息分派器。以下代碼用C編寫,為了證明Objective-C運(yùn)行時(shí)真的只是C。

static const void *myMsgSend(id receiver, const char *name) {
    SEL selector = sel_registerName(name);
    IMP methodIMP = class_getMethodImplementation(object_getClass(receiver), selector);
    return methodIMP(receiver, selector);
}

void RunMyMsgSend() {
    // NSObject *object = [[NSObject alloc] init];
    Class class = (Class)objc_getClass("NSObject");
    id object = class_createInstance(class, 0);
    myMsgSend(object, "init");
    
    // id description = [object description];
    id description = (id)myMsgSend(object, "description");
    
    // const char * cstr = [description UTF8String];
    const char *cstr = myMsgSend(description, "UTF8String");
    
    printf("%s\n",cstr);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澈蝙,更是在濱河造成了極大的恐慌,老刑警劉巖撵幽,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灯荧,死亡現(xiàn)場離奇詭異,居然都是意外死亡盐杂,警方通過查閱死者的電腦和手機(jī)逗载,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門哆窿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厉斟,你說我怎么就攤上這事挚躯。” “怎么了擦秽?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵码荔,是天一觀的道長。 經(jīng)常有香客問我感挥,道長缩搅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任触幼,我火速辦了婚禮硼瓣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘置谦。我一直安慰自己堂鲤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布媒峡。 她就那樣靜靜地躺著瘟栖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谅阿。 梳的紋絲不亂的頭發(fā)上慢宗,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音奔穿,去河邊找鬼。 笑死敏晤,一個胖子當(dāng)著我的面吹牛贱田,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘴脾,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼男摧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了译打?” 一聲冷哼從身側(cè)響起耗拓,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奏司,沒想到半個月后乔询,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡韵洋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年竿刁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了黄锤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡食拜,死狀恐怖鸵熟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情负甸,我是刑警寧澤流强,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站呻待,受9級特大地震影響打月,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜带污,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一僵控、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鱼冀,春花似錦报破、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荸型,卻和暖如春盹靴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瑞妇。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工稿静, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辕狰。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓改备,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蔓倍。 傳聞我的和親對象是個殘疾皇子悬钳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,681評論 0 9
  • objc_getAssociatedObject返回與給定鍵的特定對象關(guān)聯(lián)的值偶翅。ID objc_getAssoci...
    有一種再見叫青春閱讀 1,564評論 0 7
  • 參考鏈接: http://www.cnblogs.com/ioshe/p/5489086.html 簡介 Runt...
    樂樂的簡書閱讀 2,131評論 0 9
  • 忙了一陣子默勾,今天驗(yàn)收完算法實(shí)驗(yàn),忙里偷閑聚谁,心情不錯母剥。有一種不可名狀的輕松感,很享受這種感覺,愜意里透露著一種真實(shí)媳搪,...
    夢澤之安閱讀 256評論 1 1
  • 1.太差的溝通無結(jié)果铭段,盡量不要正面硬剛,盡量直接做他們想要的結(jié)果. 2.一切只能用事實(shí)來證明秦爆。不能廢話序愚。 3.吵架...
    智囊團(tuán)閱讀 193評論 0 0