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");

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容