为Xcode设置用户特定的预处理器宏

时间:2013-05-03 01:09:50

标签: objective-c xcode xcode4.5

我希望能够拥有特定的代码块,例如#ifdef SOME_VARIABLE,如果项目是在特定用户的机器上构建的,那么变量的值将在项目的构建时填充。

这可能吗?

3 个答案:

答案 0 :(得分:4)

您可以在“预处理器宏”构建设置中设置该值。在构建设置中设置“SOME_VARIABLE = $ {USER}”等同于代码中的#define SOME_VARIABLE“jappleseed”。

然后在你的代码中你可以这样做:

#define jappleseed 1
#define sjobs      2

#if DEV_USER == jappleseed
    NSLog(@"Hi Jhonny");
#elif DEV_USER == sjobs
    NSLog(@"Hi Steve");
#endif

注意:如果你真的想在代码中使用字符串“jappleseed”,你应该使用Info.plist而不是#define

,这是一个人为的例子。

答案 1 :(得分:2)

在Xcode 6(至少)中,您可以在构建设置<的预处理器宏部分中将您的用户名包含为宏的名称的一部分/强>:

ENV_USER_$(USER)=1(这将定义宏ENV_USER_myusername

然后,在您的代码中,您可以使用

#if ENV_USER_myusername
...
#endif

定义中的=1可能是多余的,因为默认情况下Xcode似乎将变量定义为true。我们只是为了安全起见,并且能够使用#if#ifdef。这样就不用担心它可能被定义了,但是评估到false,在这种情况下#ifdef仍然可以工作,但#if不会。当然,您可以将其定义为您希望的任何值,具体取决于您的需求。

答案 2 :(得分:0)

swift中的

:将DEBUG _ $(USER)添加到“Active Compilation Conditions”

无法分配值