前言
总是提不起学习的心哈哈,坚持吧。block之前学GCD的时候用到过,当时做了简单的了解,今天总结下简单的block知识吧。应该都是最基础的知识了。
一、block的概念
block:带自动变量(局部变量)的匿名函数。这个额,其实我做过一段时间的前端,感觉这个和js中的匿名函数有点像,有兴趣的可以找一下自执行匿名函数,闭包。js作为还算年轻的语言,杂糅了多种语言,有些用法反而显得简单明了。
直接上代码吧
NSString * (^myBlock)(NSString *,NSString *) = ^(NSString *str1,NSString *str2){
return [NSString stringWithFormat:@"%@ %@",str1,str2];
};
NSLog(@"%@",myBlock(@"my",@"block"));
上述代码是完整的block,一般很多东西都可以省略,从左到右,返回值类型、block名字、形参、实参、函数体。
打印如下
textview[6715:1866873] my block
二、typedef对block重命名
typedef:typedef是替换的作用,作用是为一种数据类型定义一个新名字。
例子:
typedef int (^sum)(int);
sum mySum = ^(int a){
return a+1;
};
NSLog(@"%i",mySum(4));
block有太多东西了,我周末加加班吧
网友评论