我有一个项目,现在需要将其拆分为两个目标。原先的单目标项目使用了很多宏定义命令,而我现在需要根据构建的目标不同来修改这些值。
正确的做法是什么?我应该在AppDelegate中声明NStrings吗?还是可以在设置#defines时使用#if语句?
非常感谢任何帮助。
我有一个项目,现在需要将其拆分为两个目标。原先的单目标项目使用了很多宏定义命令,而我现在需要根据构建的目标不同来修改这些值。
正确的做法是什么?我应该在AppDelegate中声明NStrings吗?还是可以在设置#defines时使用#if语句?
非常感谢任何帮助。
一个可能的方法如下:
#if defined(MON_TARGET_A)
#define MON_TARGET_NAME "App A"
#elif defined(MON_TARGET_B)
#define MON_TARGET_NAME "App B"
#else
#error "which target are you building?"
#endif
然后将 MON_TARGET_A
或 MON_TARGET_B
添加到目标的预处理器设置中。
通常情况下,您将使用 GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
而不是 GCC_PREPROCESSOR_DEFINITIONS
,因为后者可能会防止 PCH 头文件的共享。
要添加此内容,请转至:
然后将 GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
拖放到搜索字段中,并将其值设置为类似以下内容:MON_TARGET_A $(inherited)
MyClass
?我用MON
代替My
(例如MONClass
)作为例子。法国卷发。(即:英文中的my
相当于法语中的mon
) - justin