转自 http://www.cnblogs.com/likwo/archive/2011/12/02/2272637.html

根据是Debug和Release显示不同的调试信息在Ios开发中是常见的

我以前是这么做的

#ifdef DEBUG

#define Dlog NSLog
#else
#define Dlog //NSLog
#endif


但是在Xcode4.2 里当设置为release版本的时候,会给警告。


收集了下显示debug信息的方法

方法一

 在prefix header pch文件中添加如下代码

NSLog debug调试  release屏蔽_NSlog debug
#ifndef __OPTIMIZE__

#    define NSLog(...) NSLog(__VA_ARGS__)

#else

#    define NSLog(...) {}
NSLog debug调试  release屏蔽_NSlog debug

#endif

方法二

// DLog is almost a drop-in replacement for NSLog

NSLog debug调试  release屏蔽_NSlog debug
// DLog();
// DLog(@"here");
// DLog(@"value: %d", x);
// Unfortunately this doesn't work DLog(aStringVariable); you have to do this instead DLog(@"%@", aStringVariable);
#ifdef DEBUG
#       define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#       define DLog(...)
#endif

// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);