iOS block简单用法

block 是iOS4.0之后出现的技术,block变量可以看成oc的对象,但block的语法和技术是更底层c的知识,效率比代理高

block变量的实质是一个匿名函数(函数可以有参数、可以有返回值但没有函数名)

声明一个最简单的block变量, _myFirstBlock 为变量的名称,声明时规定了要赋给_myFirstBlock的函数,没有参数、没有返回值

(1)定义 block  

@interfaceRootViewController()

{

void(^_myFirstBlock)(void);

//声明_mySecondBlock,规定了要赋给它的函数,带有两个NSInteger的参数和一个NSInteger的返回值

NSInteger(^_mySecondBlock)(NSIntegera,NSIntegerb);

NSString*(^_myThirdBlock)(NSString*str1,NSString*str2);

}

(2)实现block

//为block变量进行初始化赋值,给block赋值一个匿名函数

_myFirstBlock=^{

NSLog(@"my first block!");

};

//赋值,赋给block的函数,跟block的声明是一致的

_mySecondBlock= ^(NSIntegera,NSIntegerb){

NSLog(@"my second block!");

returna+b;

};

_myThirdBlock= ^(NSString*str1,NSString*str2){

NSLog(@"my third block!");

return[str1stringByAppendingString:str2];

};

(3)调用block

_myFirstBlock();

NSIntegersum =_mySecondBlock(1,2);

NSString*myStr =_myThirdBlock(@"test1",@"test2");

你可能感兴趣的:(iOS block简单用法)