在 swift 之前,我将为 alpha、beta 和分发版本定义一组方案。这些方案中的每一个都将具有一组宏,这些宏被定义为在项目级别控制某些行为。最简单的例子是 DEBUG=1 宏,它是默认为 Run 构建的默认方案中的所有 Xcode 项目定义的。可以查询#ifdef DEBUG …并相应地在代码中做出决定,甚至编译出不必要的代码。
似乎这种类型的配置门控使用 swift 并不容易,因为不支持宏。有人可以提出一种类似的方法吗,我不在乎代码本身是否被编译出来。不过,我想根据构建方案来控制功能。
根据Apple 文档,在 Swift 中,您仍然可以使用“#if/#else/#endif”预处理器宏(尽管受到更多限制)。这是一个例子:
#if DEBUG let a = 2 #else let a = 3 #endif
现在,您必须在别处设置“DEBUG”符号。在“Swift Compiler - Custom Flags”部分的“Other Swift Flags”行中设置它。-D DEBUG您在条目中添加 DEBUG 符号。
-D DEBUG
(构建设置 -> Swift 编译器 - 自定义标志)
像往常一样,您可以在 Debug 或 Release 中设置不同的值。
我在真实代码中对其进行了测试;在操场上似乎无法识别它。