iOS 简化冗余代码

  正在给深圳某家智能家居开发iPad版本,在已经存在的iPhone版上修改,该app的界面采用的是xib。xib相比代码来写界面,快速高效,但是可维护性和可读性太差。言归正传,看到这些代码后,我的心情很复杂。

  任何一门编程领域,任何人都可以参与,就拿iOS开发来说,有的人写出的代码是能执行,但不仅仅要求是能执行,当项目的功能不断增加时,不整洁的编写风格会让人看着想吐,就不用谈什么可维护性了,简直是一团糟。

 else if (devTypeID==13||devTypeID==14)
    {
        XRDimmingViewController *dimmingVC;
        if (iphone6P)
        {
            dimmingVC = [[XRDimmingViewController alloc]initWithNibName:@"XRDimmingViewController-6P" bundle:nil];
        }
        else if (iphone6)
        {
            dimmingVC = [[XRDimmingViewController alloc]initWithNibName:@"XRDimmingViewController-6" bundle:nil];
        }
        else
        {
            dimmingVC = [[XRDimmingViewController alloc]initWithNibName:@"XRDimmingViewController" bundle:nil];
        }
        dimmingVC.devTypeID = devTypeID;
        dimmingVC.devID = devID;
        [self.navigationController pushViewController:dimmingVC animated:YES];
        return;
    }
    else if (devTypeID==15)
    {
        XRColorViewController *colorVC = [[XRColorViewController alloc] init];
        colorVC.devTypeID = devTypeID;
        colorVC.devID = devID;
        [self.navigationController pushViewController:colorVC animated:YES];
        return;
    }
    else if (devTypeID>=31&&devTypeID<=34)
    {
        XRCurtainViewController *curtainVC;
        if(iphone6)
        {
            curtainVC = [[XRCurtainViewController alloc]initWithNibName:@"XRCurtainViewController-6" bundle:nil];
        }
        else if (iphone6P)
        {
            curtainVC = [[XRCurtainViewController alloc]initWithNibName:@"XRCurtainViewController-6P" bundle:nil];
            
        }
        else
        {
            curtainVC = [[XRCurtainViewController alloc]initWithNibName:@"XRCurtainViewController" bundle:nil];
            
        }
        curtainVC.deviceType = devTypeID;
        curtainVC.curtainDeviceID = devID;
        [self.navigationController pushViewController:curtainVC animated:YES];
        return;
    }

   完全可以写一个公用方法判断设备类型来加载对应的xib。

- (NSString *)selectViewControllerXibName:(NSString *)className {
    NSString *str;
    if (iPhone6p) {
        str = [className stringByAppendingString:@"-6p"];
    } else if (iPhone6) {
        str = [className stringByAppendingString:@"-6"];
    } else {
        str = className;
    }
    return str;
}

   比如下面的这段代码就可以精简了,让程序的逻辑清晰

// 精简前:
 else if (devTypeID==13||devTypeID==14)
    {
        XRDimmingViewController *dimmingVC;
        if (iphone6P)
        {
            dimmingVC = [[XRDimmingViewController alloc]initWithNibName:@"XRDimmingViewController-6P" bundle:nil];
        }
        else if (iphone6)
        {
            dimmingVC = [[XRDimmingViewController alloc]initWithNibName:@"XRDimmingViewController-6" bundle:nil];
        }
        else
        {
            dimmingVC = [[XRDimmingViewController alloc]initWithNibName:@"XRDimmingViewController" bundle:nil];
        }
        dimmingVC.devTypeID = devTypeID;
        dimmingVC.devID = devID;
        [self.navigationController pushViewController:dimmingVC animated:YES];
        return;
    }

 

// 精简后:
else if (devTypeID==13||devTypeID==14)
{
    XRDimmingViewController *dimmingVC = [[XRDimmingViewController alloc]initWithNibName:[self selectViewControllerXibName:NSStringFromClass([XRDimmingViewController class])] bundle:nil];
    dimmingVC.devTypeID = devTypeID;
    dimmingVC.devID = devID;
    [self.navigationController pushViewController:dimmingVC animated:YES];
    return;
}

   

转载于:https://www.cnblogs.com/sunminmin/p/4451992.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值