如何让NSLog在调试(Debug)的时候输出,发布(Release)的时候不输出?

更新:

在调试的时候可以把所在的类名、方法名、行数等相关信息也打印出来,更方便调试,更新一下宏定义

问题:

之前一直觉得用在调试的时候用NSLog无所谓,但是接口有很多坑的时候就需要非常多的打印,然后就越来越多的无用信息打印出来,严重影响了后面的调试,而且只是希望在调试的时候打印,发布的时候不需要打印,然后就记得好像可以用宏定义来解决。

解决方法:

找了一下,发现其实用宏定义非常简单,几句话搞定,首先在pch文件添加下面的宏定义即可:


//...:表示宏定义的可变参数

// __VA_ARGS__:表示函数里面的可变参数

#ifdef DEBUG

#define FuLog(...) NSLog(@"%s 第%d行 \n %@\n\n",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])

#else

#define FuLog(...)

#endif


使用:

在需要用NSLog()的地方可以用FuLog()替换,这样的话在Debug的模式就可以打印,在Release的模式下就不会打印

如何测试成不成功呢?按下图切换调试即可

点击项目名,然后选择Edit Scheme

切换模式调试,看看是否成功

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安恒网络空间安全讲武堂

writeup | 应该不是 XSS

0x01 初步分析阶段 首先拿到题目,看到留言板,第一反应就是XSS。 但是看过题目提示后,有些不确定。 所以开始分析整道题目。 首先,观察network页面,...

4096
来自专栏云加头条

智能云上手指南:如何使用万象优图服务的 Python SDK

本文将为广大云开发者介绍如何使用万象优图服务的 Python SDK。

4673
来自专栏phodal

【架构拾集】移动应用 WebView 的 bridge 设计

最近的一个项目,是一个关于在移动应用中嵌入 WebView,并在其中实现 JavaScript 能调用原生代码。虽然已经有 Cordova 这样的成熟方案,但是...

862
来自专栏lestat's blog

同一页面巧妙使用多个element-ui的upload组件

4144
来自专栏前端正义联盟

关于ajax学习笔记

只要这个属性值发生了变化,就会触发一个事件onreadystatechange事件,就可以使用xhr.onreadystatechange = function...

1192
来自专栏精讲JAVA

14个你可能不知道的JavaScript调试技巧

以更快的速度和更高的效率来调试JavaScript 熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言 JavaScript 很难调试,但如果你掌握了几个...

2016
来自专栏用户2442861的专栏

webStorm 3.0配置使用主题背景色等

http://www.cnblogs.com/jikey/archive/2012/01/16/2323590.html

1311
来自专栏编程直播室

使用Ionic2开发Todo应用0 开始之前1 创建新的Ionic 2工程2. 设置主页(Home page)3 持久化数据保存4 总结

2435
来自专栏Aloys的开发之路

Linux乱码问题解决方案

linux系统中文件名内容为urf8编码, windows系统中文件名默认为gbk编码, 多数文档使用gbk编码,系统采用utf8编码 无中文输入法导致的乱码 ...

3198
来自专栏开源优测

Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试

概述 大多数情况下,我们用RobotFramework时,一般基于其图形界面的RIDE来编辑、管理、执行用例。 今天我们分享下基于非编辑器模式的RobotFra...

3259

扫码关注云+社区