block 基本用法

2021-08-07 18:39:54 字數 1503 閱讀 2980

//

專門處理:

需要重複呼叫的

block(

返回值相同,引數相同

)在.h檔案中,宣告

typedef

void

(^typedefblock)(

nsstring

*);typedef

int(^typedefbock2)(

inta,

intb);

- (ibaction)testaction:(id)sender ];

//oc語言

[self userblockwithoc2:^int(int a, int b) ];

[self userblockwithoc3:^int(int a, int b) ];

[self userblockwithoc3:blocktypedef2];

//c語言

useblockwithc(^(nsstring *info) );

useblockwithc2(^int(int a, int b) );

useblockwithc3(blocktypedef2);

}

/****************** block作為 c 引數 *********************/

void useblockwithc(void(^cblock)(nsstring *info))

void useblockwithc2(int(^cblock)(int a, int b))

void useblockwithc3(typedefbock2 cblock)

/****************** block作為 oc 引數 *********************/

- (void)useblockwithoc:(void (^)(nsstring *info)) ocblock

- (void)userblockwithoc2: (int (^)(int a, int b)) ocblock

- (void)userblockwithoc3: (typedefbock2) myblock

/******************** block處理 **********************/

//.宣告並賦值定義乙個block變數

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

//typedef :宣告並賦值定義乙個block變數

typedefblock blocktypedef = ^(nsstring *info);

typedefbock2 blocktypedef2 = ^(int a, int b);

Block基本用法

block在ios開發中使用頻率非常高,現總結一篇block基本用法和大家分享一下 定義格式 返回值 引數 可以使用快捷鍵inline,如果沒有引數或者返回值,返回值和引數都可以省略 和函式功能相似,儲存一段 block的呼叫是直接去呼叫的.block 在person類中定義乙個block屬性 pr...

block用法小計

預設情況下,任何block都是在棧中,隨時可能會被 對block設定copy屬性,block的記憶體就會放到堆裡面。book b book alloc init b.block 如果像上述寫法block所指向的 塊會強引用book的記憶體位址,使得book物件不能釋放,造成記憶體洩露。book b ...

Block用法解析

block 塊是對c做出的乙個補充,初次體驗 塊,無比的不適應。古怪的語法確實讓人不易入門甚至精通。但若能夠深入精通block的使用,會給 帶來層次上的提公升。block就是一段在將來被執行的 塊返回值型別 形參型別1 形參1,形參型別2 形參2,塊返回值型別 塊變數名 形參型別1,形參型別2,定義...