黑馬程式設計師 block

2021-06-21 16:32:19 字數 1029 閱讀 6867

------- ios培訓、mac、期待與您交流! —————

**塊   block  

lblock封裝了一段**,可以在任何時候執行 l

block可以作為函式引數或者函式的返回值,而其本身又可以帶輸入引數或返回值。 l

蘋果官方建議盡量多用block。在多執行緒、非同步任務、集合遍歷、集合排序、動畫轉場用的很多

1.block的定義

int(^mysum)(int,int) = ^(int a, intb);

定義了乙個叫mysum的blocks物件,它帶有兩個int引數,返回int。等式右邊就是blocks的具體實現

block可以訪問區域性變數,但是不能修改。

intsum=10;

int(^myblock)(int)= ^(int num) ;

如果要修改就要加關鍵字:__block

__block int

sum

= 10

;      //注意有兩個下劃線

2.blocks和函式指標對比

int(*myfn)();

l定義blocks

int(^myblocks)(int,int);

l呼叫函式指標

(*myfn)(10,20);

l呼叫blocks

myblocks(10,20);

3.blocks的賦值

l

在宣告的同時定義變數,然後賦值

int(^mysum)(int,int) = ^(int a,int b) ;

l也可先用typedef先宣告型別,再定義變數進行賦值

typedefint (^mysum)(int,int);

mysumsum = ^(int a,int b) ;

黑馬程式設計師 Block

一 block 1.block是一種資料型別,block的標誌 2.block封裝了一段 可以在任何時候執行 3.block可以作為函式引數或者函式的返回值,而其本身又可以帶輸入引數或返回值 4.block和函式 二 block的定義 1.block的定義 return 變數表示式 2.block內...

13 黑馬程式設計師 block語法

block封裝了一段 可以在任何時候執行 block可以作為函式引數或者函式的返回值,而其本身又可以帶輸入引數或返回值。蘋果官方建議盡量多用block。在多執行緒 非同步任務 集合遍歷 集合排序 動畫轉場用的很多 blocks 的定義 int mysum int,int inta,intb 定義了乙...

黑馬程式設計師 block 和 protocol的使用

一 block 1.block 是在函式執行時,儲存的一段 block是同函式一樣是有返回值的,並且可以帶形參。下面的例子是分別展示了無引數和有引數,有無返回值的block的具體實現 沒有引數,沒有返回值的block的定義,且後面函式體的小括號在無引數是可以省略 void myblock void ...