iOS宏关闭NSLog输出

Release版本关闭Log输出

#ifdef DEBUG

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

#else

#define NSLog(...)

#endif 

输出更详细的调试信息

#ifdef DEBUG  

# define DLog(fmt, ...)  NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);  

#else  

# define DLog(...);  

#endif

1)  __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。
    宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错, 你可以试试。
2) __FILE__ 宏在预编译时会替换成当前的源文件名
3) __LINE__宏在预编译时会替换成当前的行号
4) __FUNCTION__宏在预编译时会替换成当前的函数名称

参考文章:
iOS开发-使用宏自定义输出(NSLog)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人都有说谎的毛病 其中,最容易脱口而出的一句谎言就是:“没事,我很好。” 生病了自己照顾着 难过了自...
    春雨_699e阅读 432评论 0 3
  • 曾在朋友圈发过几篇自己的短文,朋友们有点出于礼貌和鼓励,或点赞留言,或评论转发。于是不经意间在朋友同事中就把我归到...
    注定远行阅读 528评论 1 0
  • 家国情怀,这是看这本书,脑海一直浮现的四个字,那个战争的年代,因为有这些饱怀家国情怀的人,才换得我们今日的安定和平...
    夏子f阅读 389评论 0 0
  • 老同学好,最近有个问题一直困扰着我,盼指导 儿子现在在重庆交通大学(土木工程专业)上学,就是永杰上的...
    阿甘1972阅读 118评论 0 0
  • 冬瓜有个迷梦 也许这世间没有所谓的天长地久,你以为那个还爱着你的少年,早已在时光的雕琢中成为了别人的新郎。若是去爱...
    月漫漫阅读 344评论 0 2