宏 – Swift 3:如何使用PREPROCESSOR标志(如`#if DEBUG`)来实现API密钥?

在Objective-C中,使用静态字符串常量来定义备用API密钥(例如,区分用于分析包的RELEASE和DEBUG密钥,如MixPanel,Flurry或Crashlytics)有时是有用的:

#if DEBUG
static NSString *const API_KEY = @"KEY_A";
#else
static NSString *const API_KEY = @"KEY_B";
#endif

接着…

[Analytics startSession:API_KEY];

这是怎么转化为Swift的,因为Swift编译器不再使用预处理器?

您仍然可以以相同的方式使用宏:

#if DEBUG
let apiKey = "KEY_A"
#else
let apiKey = "KEY_B"
#endif

但是为了让它们被Swift拾取,您需要在目标的Build Settings中设置“Other Swift Flags”:

>为您的目标打开构建设置
>搜索“其他快捷标志”
>添加要使用的宏,前面加上-D标志

enter image description here

相关文章
相关标签/搜索