ios 全面解析block

2021-08-27 14:28:10 字數 1152 閱讀 1580

block

block變數格式:

返回值型別(不可省略, 最少void,沒有()) + (^變數名稱) + (引數) (不可省略, 至少()).

無引數無返回值

void (^noparamblock)() = ^();

noparamblock();

void (^voidparamblock)(void)= ^(void);

voidparamblock();

void (^blockname)();

blockname = ^;

blockname();

有引數無返回值

void (^hasparamblock)(int) = ^(int param);

hasparamblock(10);

有引數有返回值

int (^hasreturnvalueblock)(int,int) = ^(int param1,int param2);

nslog(@"return value %d",hasreturnvalueblock(10,10));

@property block

typedef int (^myblock) (int,int);

@property (nonatomic, copy) int (^cblock)(int num1,int num2);

@property (nonatomic, copy) myblock block;

xx.cblock = ^(int num1,int num2);

xx.block = ^(int num1,int num2);

block作為引數

- (void)funwithblock:(nsstring* (^)(int ,nsstring * ))blockname1 anotherblock:(myblock)blockname2

[self funwithblock:^(int num,nsstring *str) anotherblock:block];

block作為返回值

- (int (^)(int ,int))funblockback;

}nslog(@"blockback-> %d",[self funblockback](1,7));

ios 全面解析block

typedef int myblock void cfun void blockname1 myblock blockname2 void ocfun void blockname1 andotherblock myblock blockname2 在oc中呼叫cfun,直接cfun就可以了,但是o...

ios學習 block深度解析

1.block的本質是乙個objective c的物件,為什麼這麼說?在objective c中,runtime會在執行時根據物件的isa指標的指向,來度額定這個物件的型別,也可以認為乙個物件,它具有isa指標,就是乙個oc物件 2.你怎麼知道block有isa指標呢,我們可以通過clang命令將來...

iOS開發之block解析

1.block的本質是乙個objective c的物件。為什麼這麼說?在objective c中。runtime會在執行時依據物件的isa指標的指向,來度額定這個物件的型別。也能夠覺得乙個物件。它具有isa指標。就是乙個oc物件 2.你怎麼知道block有isa指標呢。我們能夠通過clang命令將來...