我希望能够拥有特定的代码块,例如#ifdef SOME_VARIABLE
,如果项目是在特定用户的机器上构建的,那么变量的值将在项目的构建时填充。
这可能吗?
答案 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)
:将DEBUG _ $(USER)添加到“Active Compilation Conditions”
无法分配值