- block 的一般使用 回顾
定义
void (^addBlock)(NSInteger) = ^(NSInteger value){
NSLog(@"添加的数据时: %ld",value);
};
调用
addBlock(5);
等价于
^(NSInteger value){
NSLog(@"添加的数据时: %ld",value);
}(5);
-2. 返回block 的方法回顾1
方法的封装
-(void(^)(NSInteger))add{
return ^(NSInteger value){
};
}
方法的调用
self.add ; 的结果等价于 ^(NSInteger value){
};
self.add(10); 的结果等价于 ^(NSInteger value){
}(10);
-3. 返回block 的方法回顾2
方法的封装
-(Tool *(^)(NSInteger))add2{
return ^(NSInteger value){
return self;
};
}
方法的调用
self.add2 ; 的结果等价于 ^(NSInteger value){
return self;
};
self.add2(10); 的结果等价于 ^(NSInteger value){
在这里实行对value的操作
return self;
}(10);
方法调用的说明:
当我们执行 self.add2;后其实返回的是一个block ,是一段代码(或者可以理解成一个可以执行的动作), 我们在self.add2 的后面加上一个 (10) 表示我们传入一个参数10 调用这个block , 应为这个block 是有返回值得因此当我们把这个block 执行完成后 返回了self , 因此这个方法
"-(Tool *(^)(NSInteger))add2{
return ^(NSInteger value){
return self;
};
}" 我们在使用的时候其实要一分为二来看待这个方法,第一阶段执行方法后返回的是block, 当我们给这个block 传参数调用这个block时才 会执行block内的代码返回self;