【发布时间】:2018-05-29 10:12:43
【问题描述】:
我已经在我的项目中成功配置了 3 个不同的环境。我正在尝试根据方案中设置的配置访问基本 URL。
如何从下面的代码中访问名为“BASE_URL”的变量,例如
AppConstants.API.BASE_URL
class AppConstants
{
struct API
{
#if ENV_DEV
static let BASE_URL = "http://api_dev .../"
#endif
#if ENV_STAGE
static let BASE_URL = "http://api_stag .../"
#endif
#if ENV_PROD
static let BASE_URL = "https://api_prod .../"
#endif
}
}
我知道这可以做到,因为我可以在其他项目中以这种方式访问:
更新:
- 来自其他项目:
更新 2:
我已将活动编译条件中的环境变量设置为:
我想我遗漏了一些东西,可能是在构建设置中。
【问题讨论】:
-
为什么这需要是一个类?
-
如何访问它,错误信息是什么?
-
它甚至可以编译吗?从编译器的角度来看,您的
BASE_URL声明并不相互排斥。没有任何东西(除了开发人员的注意)可以防止两个或所有三个#if检查通过并且BASE_URL被多次声明。 -
@iAkki:有一个错字:构建设置中的 ENV_STAG 和代码中的 ENV_STAGE。除此之外,它应该完全按照您的方式工作。
-
投票结束作为离题(简单的印刷错误)。
标签: ios swift struct environment preprocessor-directive