在说Block的基本使用之前,我们先说Block在OC中的作用是什么?
** 保存代码的作用。通常用于回调。**
1、Block的声明
返回值类型(^block变量名)(参数列表)
void(^block)();
2、Block的定义(有三种方式定义)
第一种:
返回值类型(^block变量名)()= ^{};
void(^block1)() = ^(){
};
第二种:(如果没有参数,参数可以隐藏, 但是如果有参数,定义的时候必须要有参数,而且参数要有变量名
返回值类型(^block变量名)(参数列表)= ^(参数列表){};
void(^block2)(int a) = ^(int a){
};
第三种:不管Block有没有返回值, 都可以在等号后面把返回值类型省略
int(^block3)() = ^int{
return 3;
};
3、Block的类型
void(^block4)(NSString *) = ^(NSString *str){
return @"name";
};
上面block4的类型为: void(^)(NSString *)
我们也可以给block4起别名,类型重定义
typedef void(^Block4)(void);
那block4的定义就可以为下面的定义方式:
Block4 block4 = ^(NSString *str){
return @"name";
};
block快捷方式:
inline