OC學習筆記(1) block

2021-07-03 02:09:19 字數 1419 閱讀 3362

斷斷續續,今天又開始學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...