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

我以前是这么做的 

 #ifdef DEBUG

#define Dlog NSLog

#else

#define Dlog //NSLog

#endif


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


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

方法一

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

#ifndef __OPTIMIZE__


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


#else


#    define NSLog(...) {}


#endif 

方法二

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

// 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__);


当然,你还想需要更强大的调试能力,那么这个开源的NSLogger可能会比较对你的口味。