Xcode预处理器比较

时间:2014-05-22 10:27:40

标签: objective-c xcode c-preprocessor

我有一个应用程序,我想使用预处理器。我使用“xcodebuild”并传递参数APPLICATION_TYPE=,该参数可以是DEVPROD

然后,我想要定义一个标志,然后根据dev或prod中的哪一个使用我的代码。

代码:

#if APPLICATION_TYPE == DEV
    #define DEVELOPMENT
#elif APPLICATION_TYPE == PROD
#define PRODUCTION
#endif

我似乎遇到的问题是无论我传入“xcodebuild”,它都会定义开发。

有人可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

如果要进行比较,则必须使用数值。

不是定义像APPLICATION_TYPE这样的东西,而是为每种应用类型定义宏更容易,例如APLICATION_IS_DEV=1APLICATION_IS_PROD=1并添加一个预处理器,声明至少定义了其中一个,并且它们不是同时定义的。

但是,使用Xcode有一种更好的方法来指定预处理宏 - 只需创建一个特殊的方案或目标,而不是在宏之间切换。在方案或目标之间切换。