Block的簡單使用

2021-07-11 03:37:53 字數 2067 閱讀 1177

定義block時,可以對block的輸入引數以及返回值的型別進行定義。可以有輸入引數,也可以沒有輸入引數;可以設定乙個輸入引數,也可以設定多個引數;可以有返回值,也可以沒有返回值。

這種形式的block,無需任何輸入引數,並且無返回值,一般都是在該block中完成一些動作,例如在完成一段動畫後,執行一段block,如下所示:

@inte***ce

uiview

(uiviewanimationwithblocks)+

(void

)animatewithduration

:(nstimeinterval

)duration animations

:(void

(^)(

void

))animations

;

我們也可以自定義乙個無輸入引數、無返回值的block,如下所示:

void

(^blockwithoutinputandoutput)(

void)=

^(void

);

這種形式的block,有輸入引數,但無返回值。一般都是在該block中根據輸入引數完成一些動作,例如,在afnetworking中,當獲取到網路反饋的資料後,會呼叫乙個block,並且把從伺服器獲取的資料作為引數,傳入block。

我們也可以自定義乙個有輸入引數、無返回值的block,如下所示:

void

(^blockwithinput

)(int)=

^(int

inputnum);

int

(^blockwithoutputandinput

)(int)=

^(int

inputnum);

intintnumber2

=blockwithoutputandinput

(200

);nslog

(@"blockwithoutputandinput:%d"

,intnumber2

);

可以在block定義中傳入多個引數。

double

(^multiplytwovalues

)(double

,double)=

^(double

number1

,double

number2);

double

doublenumber

=multiplytwovalues

(5.0

,5.6

);nslog

(@"multiplytwovalues: %f"

,doublenumber

);

int

(^blockwithoutput)(

void)=

^(void

);

intintnumber1

=blockwithoutput

();nslog

(@"blockwithoutput:%d"

,intnumber1

);

01 Block的簡單使用

main.m 01 block import void logstar void test3 int main int argc,const char ar return 0 定義了乙個有返回值有引數的block void test3 int c sumblock 10,9 定義乙個block計算乙...

Block的使用 初探Block

看了兩天的block。網上是有非常多解說與教程,也有講得非常好的。這裡就主要解說下我的理解與收穫。歡迎拍磚。所謂block。我覺得應該是乙個閉包函式。而閉包,就是說block以及內部全部的變數生命週期都在其呼叫函式的生命週期內。它一被呼叫完畢,則會被立刻釋放。這裡不講執行機制,僅僅簡要地講基本的用法...

初識RAC 001 Block簡單使用

h檔案中 import inte ce person nsobject 在arc中試用strong就行 在非arc機制中試用copy,block作為物件的屬性 property nonatomic,strong void czgblock void 返回值 方法名 引數 作為方法的引數,裡面為引數的...