我的项目有两个目标:一个是App,另一个是UT。我想根据目标为一个方法返回不同的结果。 我跟着这个link但是失败了。
我试过了两个:
TARGET_NAME
。我在项目设置中将OTHER_CFLAGS
设置为包含-DTARGET_NAME=${TARGET_NAME}
。然后在代码中:
NSString *returnStr = nil;
#if TARGET_NAME == PhotoAPI
returnStr = [NSString stringWithFormat:@"%@\'%@\');",EventFunStr,dataStr];
#elif TARGET_NAME == LogicTest
returnStr = [NSString stringWithFormat:@"%@", dataStr];
#endif
return returnStr;
但似乎TARGET_NAME == PhotoAPI
总是如此
2.我也使用Preprocessor Macros
,我为App targtet设置APP
,为UT设置UT
。并在代码中:
NSString *returnStr = nil;
#ifdef APP
returnStr = [NSString stringWithFormat:@"%@\'%@\');",EventFunStr,dataStr];
#elsedef UT
returnStr = [NSString stringWithFormat:@"%@", dataStr];
#else
returnStr = nil;
#endif
return returnStr;
它始终返回nil
。
我使用LLVM GCC 4.2
。
任何人都可以帮助我吗?
答案 0 :(得分:0)
问题可能是我定义标志的方式 这是一个很好的文档,使用它只在DEBUG中调用NSLog
http://iphoneincubator.com/blog/debugging/how-to-create-conditional-log-statements-in-xcode
它在评论中说 如果您要使用GCC_PREPROCESSOR_DEFINITIONS而不是OTHER_CFLAGS, 确保使用“DEBUG = 1”形式而不是“-DDEBUG = 1”