小编典典

在没有预处理器宏的情况下,有没有办法在 Xcode 项目的项目级别定义实用的方案特定标志

all

在 swift 之前,我将为 alpha、beta
和分发版本定义一组方案。这些方案中的每一个都将具有一组宏,这些宏被定义为在项目级别控制某些行为。最简单的例子是 DEBUG=1 宏,它是默认为 Run
构建的默认方案中的所有 Xcode 项目定义的。可以查询#ifdef DEBUG …并相应地在代码中做出决定,甚至编译出不必要的代码。

似乎这种类型的配置门控使用 swift
并不容易,因为不支持宏。有人可以提出一种类似的方法吗,我不在乎代码本身是否被编译出来。不过,我想根据构建方案来控制功能。


阅读 59

收藏
2022-08-07

共1个答案

小编典典

根据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 符号。

(构建设置 -> Swift 编译器 - 自定义标志) 在此处输入图像描述

像往常一样,您可以在 Debug 或 Release 中设置不同的值。

我在真实代码中对其进行了测试;在操场上似乎无法识别它。

2022-08-07