定義block時,可以對block的輸入引數以及返回值的型別進行定義。可以有輸入引數,也可以沒有輸入引數;可以設定乙個輸入引數,也可以設定多個引數;可以有返回值,也可以沒有返回值。這種形式的block,無需任何輸入引數,並且無返回值,一般都是在該block中完成一些動作,例如在完成一段動畫後,執行一段block,如下所示:
@inte***ce我們也可以自定義乙個無輸入引數、無返回值的block,如下所示:uiview
(uiviewanimationwithblocks)+
(void
)animatewithduration
:(nstimeinterval
)duration animations
:(void
(^)(
void
))animations
;
void這種形式的block,有輸入引數,但無返回值。一般都是在該block中根據輸入引數完成一些動作,例如,在afnetworking中,當獲取到網路反饋的資料後,會呼叫乙個block,並且把從伺服器獲取的資料作為引數,傳入block。(^blockwithoutinputandoutput)(
void)=
^(void
);
我們也可以自定義乙個有輸入引數、無返回值的block,如下所示:
void(^blockwithinput
)(int)=
^(int
inputnum);
int(^blockwithoutputandinput
)(int)=
^(int
inputnum);
可以在block定義中傳入多個引數。intintnumber2
=blockwithoutputandinput
(200
);nslog
(@"blockwithoutputandinput:%d"
,intnumber2
);
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 返回值 方法名 引數 作為方法的引數,裡面為引數的...