iOS中的链式编程的应用

Copyright © 2017年ZaneWangWang. All rights reserved.

       如果你看到的不是简书原文请点击查看原文

       说到链式编程在iOS中我们首先想到的应该就是masonry框架,示例如下图:

masonry使用

这种打点式的代码风格会使得我们的代码的可读性很好,下边我们就来写一个计算器的例子来剖析一下链式编程的思想.

1.首先创建一个NSobject类别Calculator,并在其中创建Calculator类

.h内容如下:

//

//NSObject+Calculator.h

//Created by iOS on 17/2/28.

//Copyright © 2017年iOS. All rights reserved.

//

#import <Foundation/Foundation.h>

@classCalculator;

typedefvoid(^Mask)(Calculator*calculator);

@interfaceNSObject (Calculator)

//加法

+ (float)calculatorNumber:(Mask)calculator;

@end

@interface Calculator :NSObject

@property(nonatomic,assign)floatvalue;

- (Calculator*(^)(float))add;

- (Calculator*(^)(float))min;

- (Calculator*(^)(float))mul;

- (Calculator*(^)(float))div;

@end

.m内容如下

//

//NSObject+Calculator.m

//Created by iOS on 17/2/28.

//Copyright © 2017年iOS. All rights reserved.

//

#import"NSObject+Calculator.h"

@implementationNSObject (Calculator)

+ (float)calculatorNumber:(Mask)calculator{

Calculator*cal = [[Calculatoralloc]init];

calculator(cal);

return cal.value;

}

@end

@implementationCalculator

-(Calculator*(^)(float))add{

return^(floatvalue){

_value+= value;

returnself;

};

}

-(Calculator*(^)(float))min{

return^(floatvalue){

_value-= value;

returnself;

};

}

-(Calculator*(^)(float))mul{

return^(floatvalue){

_value*= value;

returnself;

};

}

-(Calculator*(^)(float))div{

return^(floatvalue){

_value/= value;

returnself;

};

}

@end

2.测试代码如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,722评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,541评论 5 13
  • 走到人生的四十年,我经历了一种新的体验,当面试考官。 话说这面试考官可不是这么容易当的。首先,你需要是专业技术人才...
    朱朱01阅读 3,385评论 0 1
  • 不良情绪 心里堵的难受感觉自己很浮躁也很世俗 不知道怎么样能够提升
    夏某某的善良笑容阅读 1,391评论 0 0
  • 1. 作业一:将第三周第一天教练所讲做一份不少于300字总结,提交至班级群。 因为自己的理解能力有限,所以今天一共...
    汪汪汪巧丽阅读 1,301评论 0 0

友情链接更多精彩内容