000-runtime簡介

1诱告、runtime的簡介

  • Runtime簡稱運行時。OC就是運行時機制吠架,也就是在運行時候的一些機制芙贫,其中最主要的是 消息機制。
  • 對于 C語言傍药,函數(shù)的調(diào)用在編譯的時候會決定調(diào)用哪個函數(shù)磺平。
  • 對于 OC的函數(shù),屬于 動態(tài)調(diào)用過程拐辽,在編譯的時候并不能決定真正調(diào)用那個函數(shù)拣挪,只有在真正運行的時候才會根據(jù)函數(shù)的名稱找到對應的函數(shù)來調(diào)用。
  • 事實證明:
    • 在編譯階段俱诸,OC可以調(diào)用任何函數(shù)菠劝,即使這個函數(shù)并未實現(xiàn),只要聲明過就不會報錯乙埃。
    • 在編譯階段闸英,C語言 調(diào)用 未實現(xiàn)的函數(shù) 就會報錯

2、runtime的作用

  • 發(fā)送消息
    • 方法調(diào)用的本質(zhì)介袜,就是讓 對象 發(fā)送消息
    • objc_msgSend,只有對象才能發(fā)送消息出吹,因此以objc開頭遇伞。
    • 使用 消息機制 前提,必須導入#import<objc/message.h>
    • 可是在終端中輸入:clang -rewrite-objc main.m 來查看最終生成的代碼

3捶牢、runtime的體驗

  • OC來創(chuàng)建一個對象
//
//  ViewController.m
//  000-runtime(消息機制的體現(xiàn))
//
//  Created by 紫荊秋雪 on 2017/2/24.
//  Copyright ? 2017年 Revan. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //OC創(chuàng)建一個對象的實現(xiàn)如下
    NSObject *objc = [[NSObject alloc] init];
    NSLog(@"%@", objc);
}

@end

  • 下面來看如何使用runtime來實現(xiàn)同樣一個創(chuàng)建對象的過程
    • 首先要導入:#import <objc/message.h>
    • 到工程 ->Build Settings搜索msg設置:Enable Strict Checking of objc_msgSend Calls 為 NO鸠珠,這樣在輸入runtime的C語言方法時就會有代碼提示
//
//  ViewController.m
//  000-runtime(消息機制的體現(xiàn))
//
//  Created by 紫荊秋雪 on 2017/2/24.
//  Copyright ? 2017年 Revan. All rights reserved.
//

#import "ViewController.h"
#import <objc/message.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //OC創(chuàng)建一個對象的實現(xiàn)如下
    //NSObject *objc = [[NSObject alloc] init];
    //NSLog(@"%@", objc);
    //1、首先要分配一個內(nèi)存空間
    /**
     *  [NSObject alloc]這句代碼在底層調(diào)用的代碼過程
     *  第一個參數(shù):調(diào)用方法的 對象
     *  第二個參數(shù):對象 調(diào)用那個 方法
     */
    id objc = objc_msgSend([NSObject class], @selector(alloc));
    // 初始化
    objc = objc_msgSend(objc, @selector(init));
    NSLog(@"%@", objc);
}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秋麸,一起剝皮案震驚了整個濱河市渐排,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌灸蟆,老刑警劉巖驯耻,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異炒考,居然都是意外死亡可缚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門斋枢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘靡,“玉大人,你說我怎么就攤上這事瓤帚∶枰Γ” “怎么了涩赢?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長轩勘。 經(jīng)常有香客問我谒主,道長,這世上最難降的妖魔是什么赃阀? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任霎肯,我火速辦了婚禮,結(jié)果婚禮上榛斯,老公的妹妹穿的比我還像新娘戒努。我一直安慰自己,他們只是感情好抛虫,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布侣集。 她就那樣靜靜地躺著,像睡著了一般王凑。 火紅的嫁衣襯著肌膚如雪搪柑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天索烹,我揣著相機與錄音工碾,去河邊找鬼。 笑死百姓,一個胖子當著我的面吹牛渊额,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垒拢,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼旬迹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了求类?” 一聲冷哼從身側(cè)響起奔垦,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎尸疆,沒想到半個月后椿猎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡仓技,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年鸵贬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脖捻。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡阔逼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出地沮,到底是詐尸還是另有隱情嗜浮,我是刑警寧澤羡亩,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站危融,受9級特大地震影響畏铆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吉殃,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一辞居、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛋勺,春花似錦瓦灶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巧娱,卻和暖如春碉怔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背禁添。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工撮胧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人上荡。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓趴樱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酪捡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

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

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉纳账,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,715評論 0 9
  • 參考鏈接: http://www.cnblogs.com/ioshe/p/5489086.html 簡介 Runt...
    樂樂的簡書閱讀 2,135評論 0 9
  • 參數(shù)自一個指針逛薇,指向類的要接收消息的實例。 OP在處理該信息的方法的選擇疏虫。 ......可變參數(shù)列表包含參數(shù)的方法...
    reallychao閱讀 805評論 0 0
  • 別以為你全心幫助永罚,你傾盡全部, 就能換來等同的回報卧秘。 這世上呢袱,總有些不知領(lǐng)情的人, 涼了你的心意翅敌,傷了你的好意羞福。 ...
    漂浮的流云閱讀 713評論 3 5
  • 焦糖咖啡,入口帶有一絲微甜蚯涮,伴有半分青澀的酸治专。下咽后嘴里充斥著苦味卖陵,味蕾把苦味傳給大腦,識海瞬時清醒张峰±崮瑁苦味變淡,唇...
    此人有點帥閱讀 275評論 0 0