斷斷續續,今天又開始學oc了
今天的內容是 block
block 是用來儲存一段**
block 的標記是 ^
block 和 其它語言的函式很像
1. 可以儲存**
2. 有返回值
3. 有形參
4. 呼叫方式一樣;
定義 block 變數的方法如下 :
void (^myblock)() = ^;
int c = sumblock(10,20);
nslog(@"%d",c);
block 內部可以訪問外面的變數i
int a = 10;
__block int b = 20;
void (^block)():
block = ^;
另一種寫法,
//typedef int (*sump)(int,int);
typedef int (^myblock)(int,int);
//int sum (int a, int b)
//int main(int argc, const char * argv) ;
myblock minusblock = ^(int a,int b)
;nslog(@"%d - %d",sumblock(10,9),minusblock(10,8));
}return 0;
}
總結:block 要掌握的東西
1. 如何定義 block 變數
int (^sumblock)(int,int);
void (^myblock)();
2. 如何利用 block 封裝**
^(int a,int b)
return a - b;
nslog(@"-----------");
3. block 訪問外面變數
* block 內部可以訪問外面的變數
* 預設情況下,block 內部不能修改外面的區域性變數
* 給區域性變數加上 __block 關鍵字,這個區域性變數就可以在 block 內部修改
4. 利用 typedef 定義 block 型別
typedef int(^myblock)(int,int);
以後就可以利用myblock這種型別來定義 block 變數
myblock block;
myblock b1,b2;
b1 = ^(int a, int b)
return a - b;
OC學習筆記之block
一 什麼是block block是oc中的乙個資料型別,但是它很特別,因為它是用來儲存一段 的 可以理解為把一段 賦值給block型別的變數 它和函式有點相似,它可以帶引數,可以有返回值,呼叫方式也一樣。二 定義乙個不帶形參沒有返回值的block main.m block created by 葬花...
OC學習筆記十 Block與 protocol
block是一種資料型別,封裝了一段 可以在任何時候執行。block 可以在程式執行時儲存一段 函式不行 block 跟函式一樣,有返回值,形參。block 以 表示一段 block block變數 以 返回值型別 block 名稱 形參型別 表示乙個 block 型別的變數。和以前學過的 c語言的...
Oc課堂筆記 Block塊
block塊 可以傳到任何地方使用 託字元 1.無返回值 無引數的block void myblock myblock 2.有返回值有引數 nsinteger sumblock nsinteger,nsinteger nsinteger num1,nsinteger num2 sumblock 10...