我在项目目标的Build Settings
中的Preprocessor Macros
部分添加了TEST=1
,但是每当我在代码中使用它时,预处理程序都认为它未定义。
- alt + 单击它会显示一个问号
- 语法着色不起作用
- 语法自动完成不起作用
例如,有:
#if TEST
// a
#else
// b
#endif
这种行为表现为:
- 语法着色仅适用于
// b
- 语法自动完成仅适用于
// b
这是因为预处理器无法找到TEST
(即使它被定义为1
,如我之前所述),因此将其视为false
。
有没有办法解决这些问题?
编辑:
我的用例涉及多个项目目标。因此,假设最初的目标名为First
,其中定义了具有值1
的TEST
预处理器宏。
如果我创建另一个项目目标,命名为Second
,未定义任何预处理器宏,并且只想在TEST
为0
(false
/未定义)时为其添加一些代码,则将其放置在#else
块(// b
)中。
知道语法着色和自动完成适用于// b
后,看起来它工作正常,但如果我将当前目标更改为First
(意图明显),甚至构建它,它仍然像选择了Second
一样工作。