block的使用
Block 又称为“块” 或 “代码块”,作用是用来保存代码。
block基本格式:
返回值类型 (^block名) (参数类型 和 数量) = ^(形参 和 数量){
//code
};
1、使用typedef声明
typedef 返回值 (^block名) (参数类型列表);
@property (nonatomic, copy) block名 block变量名; //要使用copy关键字
并在要调用的函数中写明:
_变量名(参数);
block的实现:
对象.block变量名 = ^(形参列表){
可将数据 (形参)在本类中使用。
};
//1、声明block
typedef void(^ActionBlock)(int index);
@property(nonatomic, copy) ActionBlock actionBlock;
//2、实现block代码
cell.actionBlock = ^(int index){
}
//3、调用block
if(self.actionBlock){
self.actionBlock( 1 );
}
2、属性直接声明block
@property(nonatomic, copy) void (^complishBlock)();
3、在方法中添加block
格式:
(返回值类型(^)(要传递的参数))block名称
例如:
- (void)textFieldDidChange:(NSString *)text complishBlock:(void(^)(NSInteger index))complishBlock;
4、匿名block
void (^actionBlock)(void) = ^{
NSLog(@"****************");
};
actionBlock();//执行block