Block

簡(jiǎn)述

  • 定義Block,就相當(dāng)于定義了一個(gè)函數(shù)。但是Block與函數(shù)之間還是有區(qū)別,函數(shù)必須在方法外面定義,而Block變量可以定義在方法內(nèi)部
  • 對(duì)于Block,其實(shí)也相當(dāng)于代理,在本類的Block就相當(dāng)于類自己服從某個(gè)協(xié)議,然后讓自己代理自己去做某個(gè)事情。

在項(xiàng)目中,對(duì)Block的總結(jié):

  1. Block可以定義在方法內(nèi)部,也可以定義在方法外部
  2. 在類中,定義一個(gè)Blcok變量,就相當(dāng)于定義一個(gè)函數(shù)
  3. 只有調(diào)用Block時(shí)候,才會(huì)執(zhí)行Block函數(shù)體{}內(nèi)的代碼

Block使用環(huán)境:

  1. 作為一個(gè)本地變量(As a local variable)
returnType(^blockName)(parameterTypes) = ^returnType(parameters) {};
  1. 作為@property(As a property)
 @property(nonatomic, copy, nullability) returnType(^blockName)(parameterTypes);
  1. 作為一個(gè)方法參數(shù)(As a method parameter)
 - (void)someMethodThatTakesABlock:(returnType(^nullability)(parameterTypes))blockName;
  1. 作為方法參數(shù)的時(shí)候被調(diào)用(As an argument to a method call)
[someObject someMethodThatTakesABlock:^returnType(parameters){ ... }];

5.使用typedef來定義block(As a typedef)

typedef returnType(^TypeName)(parameterTypes);
TypeName blockName = ^returnType(parameters) { ... };
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 看到一個(gè)網(wǎng)站http://fuckingblocksyntax.com/ 簡(jiǎn)單總結(jié)了Block的語法。 網(wǎng)站名很...
    陳炳樺閱讀 620評(píng)論 0 0
  • 轉(zhuǎn)自李峰峰博客 一、概述 閉包 = 一個(gè)函數(shù)「或指向函數(shù)的指針」+ 該函數(shù)執(zhí)行的外部的上下文變量「也就是自由變量」...
    Joshua520閱讀 1,104評(píng)論 0 0
  • 01 顧白站在柳蔭城外,正了正頭冠,撣了撣衣服上的灰,把背簍向上扶了扶,然后又看了看城門上方,贊嘆道?!斑@柳蔭二字...
    一之魚閱讀 267評(píng)論 7 9
  • 在這個(gè)物質(zhì)世界里,人在為生存而奮斗的過程中,遲早會(huì)意識(shí)到人的生命不僅僅是由動(dòng)物式的感官體驗(yàn)構(gòu)成的。動(dòng)物受自身對(duì)物質(zhì)...
    新園讀書會(huì)閱讀 954評(píng)論 0 2
  • 軍歌 嘹亮的激情歲月。燃燒的斗志和青春!
    東海_2abf閱讀 192評(píng)論 0 0

友情鏈接更多精彩內(nèi)容