CalculateChain class
//CalculateChain.h
#import <Foundation/Foundation.h>
@interface CalculateChain : NSObject
@property (nonatomic) float result;
@property (readonly, nonatomic, copy) CalculateChain* (^add)(float num);
@property (readonly, nonatomic, copy) CalculateChain* (^minus)(float num);
@property (readonly, nonatomic, copy) CalculateChain* (^multiply)(float num);
@property (readonly, nonatomic, copy) CalculateChain* (^divide)(float num);
@end
//CalculateChain.m
#import "CalculateChain.h"
@implementation CalculateChain
- (instancetype)init {
self = [super init];
if (!self) {
return nil;
}
self.result = 0;
return self;
}
-(CalculateChain*(^)(float))add{
return ^CalculateChain *(float value){
_result += value;
return self;
};
}
-(CalculateChain*(^)(float))minus{
return ^CalculateChain *(float value){
_result -= value;
return self;
};
}
-(CalculateChain*(^)(float))multiply{
return ^CalculateChain *(float value){
_result *= value;
return self;
};
}
-(CalculateChain*(^)(float))divide{
return ^CalculateChain *(float value){
if(value!=0)
_result /= value;
return self;
};
}
@end