Block简单介绍
- 什么是Block:带有自动变量(局部变量)的匿名函数
匿名函数:没有名称的函数。
自动变量:局部变量、函数参数。 -
写法
646335-a0db1717e9df4cec.png
- returnType表示返回的对象/关键字等(可以是void,并省略)
- blockName表示block的名称
- parameterTypes表示参数的类型(可以是void,并省略)
- parameters表示参数名称
简单链式
#import "TTBlockController.h"
@interface TTBlockController ()
@property (nonatomic, assign) float num;
- (TTBlockController *(^)(float))add;
- (TTBlockController *(^)(float))minus;
- (float)calculateResult;
@end
@implementation TTBlockController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self blockTest];
}
- (TTBlockController *(^)(float))add {
TTBlockController *(^result)(float) = ^(float value) {
self.num += value;
return self;
};
return result;
}
- (TTBlockController *(^)(float))minus {
return ^(float value) {
self.num -= value;
return self;
};
}
- (float)calculateResult {
return self.num;
}
- (void)blockTest {
float result = self.add(2).add(3).minus(1).calculateResult;
NSLog(@"计算结果-%f", result);
}
@end
网友评论