Block簡單介紹
- 什么是Block:帶有自動變量(局部變量)的匿名函數(shù)
匿名函數(shù):沒有名稱的函數(shù)。
自動變量:局部變量、函數(shù)參數(shù)。 -
寫法
646335-a0db1717e9df4cec.png- returnType表示返回的對象/關(guān)鍵字等(可以是void,并省略)
- blockName表示block的名稱
- parameterTypes表示參數(shù)的類型(可以是void,并省略)
- parameters表示參數(shù)名稱
簡單鏈式
#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(@"計算結(jié)果-%f", result);
}
@end
