美文网首页
iOS中map代替条件判断

iOS中map代替条件判断

作者: liuning_leo | 来源:发表于2017-11-27 11:22 被阅读74次

以下代码使用了三种不同的的方法实现了条件判断,分别为if、switch、map的形式。前两者实现起来简单,但是会遇到两个问题:1、在条件实现里面堆砌大量代码,增加阅读上面的难度。2、判断时间过长,假如有n个条件,可能就要判断n次。

1、假如能够将条件实现里面的代码抽出来,可以降低阅读难度。解决问题1
2、if、switch无法解决问题2,但是通过map的方式能够解决问题2.

- (IBAction)click:(id)sender {

UIButton *button = (UIButton *)sender;

NSInteger tag = button.tag;

//在这里假设tag值是条件,button是参数

//根据参数,实现具体的业务逻辑,这里举例打印button的标题,现实中可能会做各种不同的业务逻辑:拿到button的图片、更新button的点击状态等

if (tag==1) {

NSLog(@"if条件判断%@", button.currentTitle);

}

if (tag==2) {

NSLog(@"if条件判断%@", button.currentTitle);

}

if (tag==3) {

NSLog(@"if条件判断%@", button.currentTitle);

}

if (tag==4) {

NSLog(@"if条件判断%@", button.currentTitle);

}

if (tag==5) {

NSLog(@"if条件判断%@", button.currentTitle);

}

NSLog(@"启用缺省逻辑");

switch (tag) {

case 1:

NSLog(@"switch条件判断%@", button.currentTitle);

break;

case 2:

NSLog(@"switch条件判断%@", button.currentTitle);

break;

case 3:

NSLog(@"switch条件判断%@", button.currentTitle);

break;

case 4:

NSLog(@"switch条件判断%@", button.currentTitle);

break;

case 5:

NSLog(@"switch条件判断%@", button.currentTitle);

break;

default:

NSLog(@"启用缺省逻辑");

break;

}

NSDictionary *dict = @{

@"1":@"clickButton1:",

@"2":@"clickButton2:",

@"3":@"clickButton3:",

@"4":@"clickButton4:",

@"5":@"clickButton5:"

};

//key对应的判断条件,value对应执行方法的名字

NSString *methodStr = dict[@(tag).stringValue];

SEL method = nil;

if (methodStr == NULL) {

method = NSSelectorFromString(@"methodHolderplace");

} else {

method = NSSelectorFromString(methodStr);

}

//拿到参数

[self performSelector:method withObject:button];

}

- (void)methodHolderplace {

NSLog(@"启用缺省逻辑");

}

- (void)clickButton1:(UIButton *)sender {

NSLog(@"map条件判断%@", sender.currentTitle);

}

- (void)clickButton2:(UIButton *)sender {

NSLog(@"map条件判断%@", sender.currentTitle);

}

- (void)clickButton3:(UIButton *)sender {

NSLog(@"map条件判断%@", sender.currentTitle);

}

- (void)clickButton4:(UIButton *)sender {

NSLog(@"map条件判断%@", sender.currentTitle);

}

相关文章

  • iOS中map代替条件判断

    以下代码使用了三种不同的的方法实现了条件判断,分别为if、switch、map的形式。前两者实现起来简单,但是会遇...

  • Array代替Map

    Js中默认是没有Map对象的,可以使用Array来代替Map.

  • 代码优化-多态代替IF条件判断

    代码优化-多态代替IF条件判断 场景描述 在开发的场景中,常常会遇到打折的业务需求,每个用户对应的等级,他们的打折...

  • JS 书写优雅的代码

    1、多条件判断 Bad Good 将condition写作正则存到Map里,利用数组循环的特性,符合正则条件的逻辑...

  • 开发常用操作

    Mapper常用操作 使用include代替大量重复的条件判断代码:[XXXQueryInBo、XXXQueryI...

  • Java中判断map中是否包含另一个map

    判断map中是否包含另一个map map不同于list, list有直接判断集合是否包含其他集合的方法。 list...

  • Word Search

    复盘: 缺少边界条件判断 判断area和visited的位置错误地提前了 重复make了一维map 没画图没用测试...

  • 使用SWITCH代替IF进行多条件判断

    今天和大家分享在PowerPivot中使用SWITCH代替IF进行多条件判断。 我们先来看一个简单的例子: 我们需...

  • 第三课 判断语句

    if 判断语句 1.单条件判断 多条件判断 select case 判断 IIf 判断 同在excel中的if函数...

  • 2021-11-18 bash脚本编程 二 条件判断

    条件判断:如果……否则…… bash中如何实现条件判断? 条件测试类型:整数测试 字符测...

网友评论

      本文标题:iOS中map代替条件判断

      本文链接:https://www.haomeiwen.com/subject/bdbrbxtx.html