【发布时间】:2017-03-02 12:06:59
【问题描述】:
我在项目目标的Build Settings 的Preprocessor Macros 部分添加了TEST=1,每当我在代码中使用它时,预处理器都会认为它没有定义。
- alt + 点击它会显示一个问号
- 语法着色效果不佳
- 语法自动完成不能正常工作
例如,有:
#if TEST
// a
#else
// b
#endif
有这种行为:
- 语法着色仅适用于
// b - 语法自动完成仅适用于
// b
这是因为预处理器找不到TEST(即使它被定义为1,正如我之前所说),所以它把它当作false。
有没有办法解决这些问题?
编辑:
我的用例与多个项目目标有关。因此,假设初始目标命名为First,它的TEST 预处理器宏定义为1。
如果我创建另一个名为 Second 且未定义预处理器宏的项目目标,并且仅当 TEST 为 0(false/未定义)时才想为其添加一些代码,我会将其放入#else 块 (// b)。
知道语法着色和自动完成功能适用于 // b,看起来它工作正常,但如果我将当前目标更改为 First 之一(双关语)甚至构建它,它在选择Second 时仍然有效。
【问题讨论】:
-
如果您构建项目,预处理器将检测编译时间标志并显示着色和自动完成。你试过吗?
-
我当然建了这个项目。
-
您是否同时进行了调试和发布?它对我有用。
-
这与构建配置无关。我更新了我的问题。
标签: xcode preprocessor preprocessor-directive