Block塊使用

block

// 基本用法一:1.定義無參數(shù)無返回值的Block代碼塊

// void:無返回值 ():無參數(shù)

void (^printBlock)() = ^() {

NSLog(@"這是無參數(shù)無返回值的Block塊");

};

// 調(diào)用該無參數(shù)無返回值的Block塊

printBlock();

// 基本用法二:2.定義有參數(shù)無返回值的Block代碼塊

// (int):數(shù)據(jù)類型? ^(int num):有參數(shù)流济,且數(shù)據(jù)類型也要有

void (^printNumBlock)(int) = ^(int num) {

NSLog(@"這是有參數(shù)無返回值的Block塊, 傳入的參數(shù)是:%d", num);

};

// 調(diào)用該有參數(shù)無返回值的Block塊

printNumBlock(10);

// 基本用法三:3.定義有參數(shù)有返回值的Block代碼塊

// int:有返回值,返回數(shù)據(jù)類型為int的值,??不要加括號

// ^(int num):有參數(shù),且數(shù)據(jù)類型也要有

int (^printCountBlock) (int) = ^(int num) {

NSLog(@"這是有參數(shù)有返回值的Block塊做鹰,傳入的參數(shù)是:%d", num);

return num * 9;

};

// 調(diào)用該有參數(shù)有返回值的Block塊

int consequence = printCountBlock(8);

NSLog(@"這是有參數(shù)有返回值的Block塊,返回的值是:%d", consequence);


為什么用block? 和函數(shù)有很多相似之處并扇,但是絕對絕對不是函數(shù)。

^{

語句體;

};

PS: // myblock是block類型的變量

void (^myblock)() = ^{

NSLog(@"Hello, World!");

};

// 調(diào)用myblock函數(shù)

myblock();

函數(shù)是不允許嵌套定義的抡诞,也就是不允許在函數(shù)的定義里再去定義一個函數(shù)穷蛹。

block可以在函數(shù)的定義里定義。

int(^mathBlock)(int x,int y);? mathBlock 是block類型的變量

typedef? int(^mathBlock)(int x,int y);? 而現(xiàn)在mathBlock類型的別名是.block類型 int(^)(int x,int y);

typedef 的使用

1.int count;? count是整形類型的變量

2.typedef int count;? count是整形類型的別名昼汗。

3.count i; 那么i就是count類型的肴熏,也就是int類型的。

1.int(*math_t)(int, int);

math_t是什么顷窒? 是指向指針類型的變量 蛙吏,存放的是地址。函數(shù)的名字就是函數(shù)的入口地址.

2. typedef int(*math_t)(int, int);

3. math_t mt; mt是什么?變量鸦做。指針類型的變量璧疗。訪問這個變量內(nèi)容里的內(nèi)容的時候,訪問方式是函數(shù)類型馁龟。

PS: // 第二個有參block的使用

// typedef的使用 此時mathBlock類型的別名是.block類型 int(^)(int x,int y);

typedef int(^mathBlock)(int x,int y);

mathBlock mt;

mt = ^(int x, int y){

return x + y;

};

// 調(diào)用有參mathBlock函數(shù)

int result = mt(3, 5);

NSLog(@"result = x+y = %d", result);

block語句塊可以訪問可以訪問block外局部變量,但是只能讀取不能寫崩侠; 如果想寫入,需要在變量聲明的前邊加上__block聲明坷檩。

int var_a = 20;

__block int var_b = 30;

block可以作為返回值類型

在主函數(shù)里: // 第三種

int a = 3; int b = 5;

int result2;

int mta;

TRMath *t = [[TRMath alloc] init];

// 調(diào)用process方法

mta = [t process:^int(int x, int y) {

return x + y;

} withInt:b otherInt:a];

result2 = [t process:^int(int x, int y) {

return x - y;

} withInt:b otherInt:a];

NSLog(@"a + b = %d", mta);

NSLog(@"b - a = %d", result2);

// 第四種

TRPerson *tp = [[TRPerson alloc] init];

// 調(diào)用getBlock方法

TRBlock bloc = [tp getBlock];

bloc();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末却音,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子矢炼,更是在濱河造成了極大的恐慌系瓢,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件句灌,死亡現(xiàn)場離奇詭異夷陋,居然都是意外死亡,警方通過查閱死者的電腦和手機胰锌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門骗绕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人资昧,你說我怎么就攤上這事酬土。” “怎么了格带?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵撤缴,是天一觀的道長。 經(jīng)常有香客問我叽唱,道長屈呕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任棺亭,我火速辦了婚禮虎眨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侦铜。我一直安慰自己专甩,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布钉稍。 她就那樣靜靜地躺著,像睡著了一般棺耍。 火紅的嫁衣襯著肌膚如雪贡未。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音俊卤,去河邊找鬼嫩挤。 笑死,一個胖子當著我的面吹牛消恍,可吹牛的內(nèi)容都是我干的岂昭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼狠怨,長吁一口氣:“原來是場噩夢啊……” “哼约啊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佣赖,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤恰矩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后憎蛤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體外傅,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年俩檬,在試婚紗的時候發(fā)現(xiàn)自己被綠了萎胰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡棚辽,死狀恐怖奥洼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晚胡,我是刑警寧澤灵奖,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站估盘,受9級特大地震影響瓷患,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遣妥,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一擅编、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箫踩,春花似錦爱态、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至慨削,卻和暖如春洞渔,著一層夾襖步出監(jiān)牢的瞬間套媚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工磁椒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留堤瘤,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓浆熔,卻偏偏與公主長得像本辐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子医增,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

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

  • 01-常量與變量 學(xué)習(xí)swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔閱讀 5,114評論 2 19
  • 一慎皱、Block的簡單介紹 Block 就是匿名函數(shù) 它是封裝了一個代碼塊,這個代碼塊在什么時候都可以執(zhí)行调窍; 使用B...
    5c7a7cf606fc閱讀 508評論 0 0
  • Blocks編程要點 目錄 簡介............................................
    xuejunjun閱讀 1,199評論 0 5
  • Swift 介紹 簡介 Swift 語言由蘋果公司在 2014 年推出宝冕,用來撰寫 OS X 和 iOS 應(yīng)用程序 ...
    大L君閱讀 3,176評論 3 25
  • 在小學(xué)階段,五年級已經(jīng)屬于高年級邓萨。所以我就理所當然的以為五年級的學(xué)生已經(jīng)比較成熟地梨。直到這次見習(xí),才發(fā)現(xiàn)自己原來的想...
    偏執(zhí)l閱讀 1,624評論 0 1