我希望能够拥有特定的代码块,例如,#ifdef SOME_VARIABLE
如果项目是在特定用户的机器上构建的,那么变量的值将在项目的构建时填充。
那可能吗?
我希望能够拥有特定的代码块,例如,#ifdef SOME_VARIABLE
如果项目是在特定用户的机器上构建的,那么变量的值将在项目的构建时填充。
那可能吗?
您在“预处理器宏”构建设置中设置值。在构建设置中设置 "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
在 Xcode 6(至少)中,您可以将您的用户名作为宏名称的一部分包含在 Build Settings 的预处理器宏部分中:
ENV_USER_$(USER)=1
(这将定义宏ENV_USER_myusername
)
然后,在您的代码中,您可以使用
#if ENV_USER_myusername
...
#endif
定义中的=1
可能是多余的,因为 Xcode 似乎将变量定义为true
默认值。我们把它放在那里只是为了安全起见并且能够使用#if
或#ifdef
。这样就不用担心它可能被定义,但评估为false
,在这种情况下#ifdef
仍然可以工作但#if
不会。当然,您可以将其定义为您希望的任何值,具体取决于您想要什么。
迅速:将 DEBUG_$(USER) 添加到“活动编译条件”
没有办法赋值