我正在尝试为DLOG设置DEBUG_MODE宏以仅使用调试模式,但它不起作用...
到目前为止我尝试了什么:http://developer.sinnerschrader-mobile.com/llvm-preprocessor-macros-xcode/275/
并将另一个标志命名为DEBUG_MODE,播放带或不带$(继承)值的组合。
我很困惑,绿色突出部分代表什么?为什么有些部分看起来是空的,但是当点击值时会看到它?
我应该如何配置我的宏以便我可以真正访问它们:
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...) do { } while (0)
#endif
编辑:
这变得非常邪恶!我在发布模式下将所有值设置为DEBUG = 0。并改变了
#if DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...) do { } while (0)
#endif
仍然看到发布中的所有日志......
答案 0 :(得分:1)
您的预处理器宏设置(调试为DEBUG=1
且版本为DEBUG=0
)将导致DLog()
宏的第一个定义被使用,因为您使用了#ifdef
(如果定义)提供不同的实现。这是因为如果您完全定义宏 ,无论您将其定义为。
您需要做的是:
DEBUG=0
。#if DEBUG
代替#ifdef DEBUG
。