在ios中的不同目标上定义一个宏两个值

时间:2012-12-05 07:21:12

标签: iphone ios

我有一个有两个目标的应用程序,我想为不同的目标定义一个具有不同值的宏。我可以这样做吗?两者都是发布版本

2 个答案:

答案 0 :(得分:4)

每个目标在Xcode中都有自己的“构建设置”,你有“预处理” - 类别(查找定义了'DEBUG = 1'的位置),你可以在其中设置对目标唯一的自定义宏。

答案 1 :(得分:0)

这样做

#define CONSOLE_DEBUG 1 // Comment this line to undefine

#ifdef CONSOLE_DEBUG
     #define SMLog(format, ...) NSLog((@"%s (%d) " format), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
     #define SMLog(format, ...)
#endif

当您定义CONSOLE_DEBUG时,SMLOG将使用Pretty功能打印日志。否则如果你在上面评论那么它就会打印一个简单的NSLOG。

您可以简单地检查目标宏而不是CONSOLE_DEBUG。

修改

在我的一个应用程序中,我需要提供不同的URL,因此请使用不同的目标进行IDid,如下所示

#ifdef APP_LIVE

    #define strDefaultURL <Some URL String>
    #define strIndexPlistURL <Some URL String>

#elif APP_DEV

    #define strDefaultURL <Some URL String>
    #define strIndexPlistURL <Some URL String>

#else

    #define strDefaultURL <Some URL String>
    #define strIndexPlistURL <Some URL String>

#endif

在各个目标中定义了APP_LIVE和APP_DEV。