oni*_*iri 8 iphone xcode preprocessor
我试图在同一个XCode项目中拥有我的iPhone应用程序的2个版本.代码库几乎相同,我需要有不同的行为,我决定使用预处理器的条件和${TARGET_NAME}标签.
我已经设置OTHER_CFLAGS为包含" -DTARGET_NAME=${TARGET_NAME}".
然后在我的代码中我试着做
#if TARGET_NAME == myApp
NSLog(@"pro");
#elif TARGET_NAME == myAppLite
NSLog(@"lite");
#endif
Run Code Online (Sandbox Code Playgroud)
不幸的是我总是打印出"精简版",因为TARGET_NAME == myApp它始终是真的:自TARGET_NAME定义之后.我不能为我的生活弄清楚如何评估这个字符串比较.任何的想法?
提前致谢
Jas*_*oco 11
您无法比较#if块中的字符串.而是将定义添加到每个特定目标.例如,在完整版的目标,打开Info面板,然后生成选项卡,并添加类似FULL_VERSION的GCC_PREPROCESSOR_DEFINITIONS构建设置.然后,对于lite目标,输入类似的内容LITE_VERSION.在您的代码中,您可以:
#ifdef FULL_VERSION
NSLog(@"Full");
#else
NSLog(@"Lite");
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8622 次 |
| 最近记录: |