我在项目目标的Build Settings
的Preprocessor Macros
部分中添加了TEST=1
,并且每当我在代码中使用它时,预处理器都认为它没有被定义。Xcode中的预处理器忽略目标预处理器宏
- ALT +点击它显示了一个问号
- 语法着色不工作以及
- 语法自动完成工作不正常
例如,具有:
#if TEST
// a
#else
// b
#endif
有这种行为:
- 语法着色只适用于
// b
- 语法自动完成仅适用于
// b
这是因为预处理器不能找到TEST
(即使它定义为1
,正如我前面提到),所以它将其视为false
。
有什么办法可以解决这些问题吗?
编辑:
我的使用情况与多个项目目标。因此,假设初始目标名为First
,其中TEST
预处理器宏定义为值1
。
如果我创建一个没有定义预处理宏命名为Second
另一个项目的目标和要添加一些代码,它只有在TEST
是(没有定义false
/)0
,我把它放在#else
块(// b
)。
知道了语法着色和自动完成工程// b
,它看起来像它工作正常,但由于选择Second
如果我改变当前目标的First
一个(双关语意),甚至构建它,它仍然有效。
如果您构建项目,预处理器将检测编译时间标志并显示着色和自动完成。你尝试过吗? – manishg
当然我建立了这个项目。 –
您是否为调试和发布做了这件事?它在我的最后。 – manishg