Block(塊)介紹之一:Block簡介

前言:block是從iOS4開始引入的一個新特性,block是對C語言的一個擴展,在Objective-C中完全支持。block在現(xiàn)在的iOS開發(fā)中越來越普遍,因為block在使用起來非常強大,簡單來說,block就是封裝了一組代碼語句的對象,可以在任何時間執(zhí)行。

1、Block簡介

Block塊是封裝工作單元的對象,是可以在任何時間執(zhí)行的代碼段。其本質(zhì)上是可移植的匿名函數(shù),可以作為方法和函數(shù)的參數(shù)傳入,可以從方法和函數(shù)中返回?!ǚg自官方文檔)

塊是對C語言的一種擴展,它并未作為標(biāo)準(zhǔn)的ANSI C所定義的部分,而是有蘋果公司添加到語言中的。塊看起來更像是函數(shù),可以給塊傳遞參數(shù),塊也可以具有返回值。

2、Block的定義與調(diào)用

塊是以插入字符^開頭,后面的一個括號()內(nèi)表示塊所需要的參數(shù),最后面的大括號{}中是塊主體,最后以分號;結(jié)束。如下面代碼所示:

^(intinputNum){

NSLog(@"printBlock Called!");

returninputNum;

};

同時,也可以將這個塊賦值給一個變量printBlock,聲明方式如下。其中,變量printBlock就是指向代碼塊的指針。

int(^printBlock)(int)=^(intinputNum){

NSLog(@"printBlock Called!");

returninputNum;

};

當(dāng)需要調(diào)用已經(jīng)定義的block時,可以使用如下方式,和函數(shù)調(diào)用十分類似。

inti=printBlock(100);

3、把Block聲明為類的屬性

由于Block就是一個存儲了一段代碼的對象,因此,也可以把Block設(shè)置為某個類的屬性。同時,可以用self.blockProperty來給該屬性賦值。

@interfaceViewController()

@property(copy)void(^blockProperty)(void);

@property(copy,nonatomic)void(^blockPropertyWithInput)(int);

@end

-(void)viewDidLoad{

[superviewDidLoad];

//blockProperty

self.blockProperty=^{

NSLog(@"blockProperty is called!");

};

self.blockProperty();

//blockPropertyWithInput

self.blockPropertyWithInput=^(inti){

NSLog(@"blockPropertyWithInput is Called! I Value is %d",i);

};

self.blockPropertyWithInput(150);

}

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,221評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評論 25 709
  • 017年第4期百人工程 47號 Susie 2017年8月14號打卡 1.【音頻】清華幼兒英語 0bUnit1-5...
    029108296e5b閱讀 219評論 0 0
  • 公司開始讓做一個新iOS項目,由于蘋果的更新需要每次發(fā)版本審核,沒法像服務(wù)器一樣實時更新,技術(shù)部就討論出原生+HT...
    奶茶007閱讀 1,870評論 16 9
  • 最近在斷舍離,最多的就是衣服,于是,閨蜜們?yōu)榱顺扇?,都來家里試衣服。合適了就拿走,還會給我一些錢,滿足一下3號的...
    綻放玫瑰成長九型閱讀 231評論 0 0

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