一直都覺得使用Masonry的時(shí)候,語法很特別,今天來嘗試下怎么實(shí)現(xiàn)
關(guān)于block在這里就不贅述,直接上代碼
- (void)cacultor {
YLCacultorManager *calcu = [[YLCacultorManager alloc]init];
calcu.add(5).add(10).subduction(2).multiplication(2).division(4);
NSLog(@"%.2lf",calcu.result);
}
模仿 Masonry鏈?zhǔn)骄幊痰暮?jiǎn)單計(jì)算器
YLCacultorManager.h
@property (nonatomic, assign, readonly) CGFloat result;
/**
* 加法
*/
- (YLCacultorManager * (^)(CGFloat))add;
/**
* 減法
*/
- (YLCacultorManager * (^)(CGFloat))subduction;
/**
* 乘法
*/
- (YLCacultorManager * (^)(CGFloat))multiplication;
/**
* 除法
*/
- (YLCacultorManager * (^)(CGFloat))division;
YLCacultorManager.m
- (YLCacultorManager * (^)(CGFloat))add {
return ^(CGFloat value){
_result += value;
return self;
};
}
- (YLCacultorManager * (^)(CGFloat))subduction {
return ^(CGFloat value){
_result -= value;
return self;
};
}
- (YLCacultorManager * (^)(CGFloat))multiplication {
return ^(CGFloat value){
_result *= value;
return self;
};
}
- (YLCacultorManager * (^)(CGFloat))division {
return ^(CGFloat value){
_result /= value;
return self;
};
}