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