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命令將來...