Swift枚举活学活用(2)

原创文章转载请注明出处

Resting Giant by Basil Greber on 500px.com
Resting Giant by Basil Greber on 500px.com

通常的项目我们都会配置运行环境,在我的项目中我习惯于配置Dev、Qa和Release三个环境,分别对应开发、测试和量产,根据实际情况可能会增加一个Demo环境。

enum和运行环境配置

//开发环境
enum ServerEnvMode: Int {
    case Dev
    case Qa
    case Release
}
var serverEnvMode: ServerEnvMode = .Dev

来看看具体的使用场景吧

配置服务器基地址

enum ServerEnvMode: Int {
    case Dev
    case Qa
    case Release
    
    func getBaseUrl() -> String {
        switch self {
        case .Dev:
            return "dev url"
        case .Qa:
            return "qa url"
        case .Release:
            return "release url"
        }
    }
}

//我们可以这么访问
serverEnvMode.getBaseUrl()

同样的,如果服务端的图片服务器也是随运行环境的不同进行配置,可以在枚举中继续添加方法。

图片请求地址

func getImageUrl(url: String) -> String {
    switch self {
    case .Dev:
        return "dev image server url" + url
    case .Qa:
        return "qa image server url" + url
    case .Release:
        return "release image server url" + url
    }
}

通过枚举配置运行环境,我们将以往散落的全局变量和方法统一到了一起,凡是和运行环境配置有关的设置都可以通过枚举方法来实现。

小贴士:编译前根据不同的运行环境,通过脚本替换serverEnvMode的值,配合Jenkins这样的CI工具,一键发布版本减少人工操作犯错的可能。

我是咕咕鸡,一个还在不停学习的全栈工程师。
热爱生活,喜欢跑步,家庭是我不断向前进步的动力。

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

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,997评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,041评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,126评论 6 342
  • 终于可以静下来写点东西了,虽然明天起又要为了生活奔波为知识忙碌,但我珍惜现在的写作氛围。 我在听《最重要的决定》,...
    十六颗心阅读 5,007评论 0 0
  • 我是一个活泼开朗的阳光小男孩,是一个无忧无虑的00后! 我是一个乐高小达人,美国队长,钢铁侠,黑...
    李丰名阅读 2,206评论 0 3

友情链接更多精彩内容