在說Block的基本使用之前,我們先說Block在OC中的作用是什么?
** 保存代碼的作用。通常用于回調。**
1、Block的聲明
返回值類型(^block變量名)(參數(shù)列表)
void(^block)();
2、Block的定義(有三種方式定義)
第一種:
返回值類型(^block變量名)()= ^{};
void(^block1)() = ^(){
};
第二種:(如果沒有參數(shù),參數(shù)可以隱藏, 但是如果有參數(shù),定義的時候必須要有參數(shù),而且參數(shù)要有變量名
返回值類型(^block變量名)(參數(shù)列表)= ^(參數(shù)列表){};
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