我的项目有两个目标:一个是应用程序,另一个是UT.I,我想根据目标为一种方法返回不同的结果。
我跟踪了这个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似乎总是正确的。
Preprocessor Macros,我为App设置了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。
有谁可以帮我?
发布于 2011-10-12 12:51:44
问题可能是您在这里定义标志的方式,这是一个很好的文档,它只用于在调试中调用NSLog。
http://iphoneincubator.com/blog/debugging/how-to-create-conditional-log-statements-in-xcode
它在评论中说,如果要使用GCC_PREPROCESSOR_DEFINITIONS而不是OTHER_CFLAGS,请确保使用“DEBUG=1”而不是“-DDEBUG=1”形式
https://stackoverflow.com/questions/7342209
复制相似问题