xcode:根据目标构建

时间:2011-09-08 01:29:35

标签: xcode4 preprocessor

我的项目有两个目标:一个是App,另一个是UT。我想根据目标为一个方法返回不同的结果。 我跟着这个link但是失败了。

我试过了两个:

  1. 我使用TARGET_NAME。我在项目设置中将OTHER_CFLAGS设置为包含-DTARGET_NAME=${TARGET_NAME}。然后在代码中:
  2. 
    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

    任何人都可以帮助我吗?

1 个答案:

答案 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”