在release版本禁止输出NSLog内容

  • 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉。

我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时,再取消这些注释,这实在是一件无趣而耗时的事!还好,还有更优雅的解决方法,就是在项目的prefix.pch文件里加入下面一段代码,加入后,NSLog就只在Debug下有输出,Release下不输出了。

如何实现:

  • 在-Prefix.pch(pch全称是“precompiled header”,也就是预编译头文件,该文件里存放的工程中一些不常被修改的代码,比如常用的框架头文件,这样做的目的提高编译器编译速度。我们知道当我们修改一个工程中某个文件代码时候,编译器并不是重新编译所有所有文件,而是编译改动过文件的,假如pch中某个文件修改了,那么pch整个文件里包含的的其他文件也会重新编译一次,这样就会消耗大量时间,所以它里面添加的文件最好是是很少变动或不变动的头文件或者是预编译的代码片段;)文件中添加

      #ifdef DEBUG#define NSLog(...) NSLog(__VA_ARGS__)#define debugMethod() NSLog(@"%s", __func__)#else#define NSLog(...)#define debugMethod()#endif

上段代码的意思就是 用宏指令做一个判断,如果DEBUG为真,则编译#ifdef到#endif宏定义,否则编译器就不编译;

这个DEBUG在哪设置呢

  • 在 “Target > Build Settings > Preprocessor Macros > Debug” 里有一个”DEBUG=1”。

设置为Debug模式下,Product→Scheme→SchemeEdit Scheme设置Build Configuration成Debug时,就可以打印nslog了。设置Release,发布app版本的时候就不会打印了,提高了性能

转载于:https://www.cnblogs.com/sungk/p/5170817.html

NSLog不打印设置相关推荐

  1. WebBrowser 打印设置,打印预览,去页眉和页脚

    WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 <object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CL ...

  2. cad打印样式ctb丢失_CAD制图初学入门之常见的CAD打印设置汇总

    在使用浩辰CAD软件绘制图纸的过程中,CAD打印也有很多设置,包括打印样式的选择.打印颜色的设置.打印线宽的选择等,这些常见的打印设置很多CAD制图初学入门者可能并不是很了解.下面就来给大家分享一下C ...

  3. 网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距

    1.控制"纵打". 横打"和"页面的边距 (1) <object  id="factory"  style="display ...

  4. cad布局教程_CAD制图初学入门之常见的CAD打印设置汇总

    在使用浩辰CAD软件绘制图纸的过程中,CAD打印也有很多设置,包括打印样式的选择.打印颜色的设置.打印线宽的选择等,这些常见的打印设置很多CAD制图初学入门者可能并不是很了解.下面就来给大家分享一下C ...

  5. 自动化办公之excel教程(8):单变量求解,规划求解,页面布局,打印设置

    一.单变量求解 原始表格,我们的任务就是根据想要的利润,反推销售额 第一步:单击利润单元格,数据选项卡,单变量求解 注意事项,目标单元格必须有公式来啦.单变量求解,相当于自动帮我们根据公式计算各值.本 ...

  6. 常用的NSLOG日志打印格式

    2019独角兽企业重金招聘Python工程师标准>>> 常用的NSLOG日志打印格式 以下是常用的LOG打印,如果有特殊,请@我 ,这边会不定期更新. %@        对象 %d ...

  7. php 浏览器 打印控件,JavaScript_JavaScript 实现打印,打印预览,打印设置,WebBrowser是IE内置的浏览器控件 - phpStudy...

    JavaScript 实现打印,打印预览,打印设置 WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 二.WebBrowder控件的方法 //打印 WebBro ...

  8. 1.13 打印机和工作簿的打印设置 [原创Excel教程]

    1. 本节课将为您演示电子表格的打印功能.制作好的电子表格往往需要打印输出,以便信息的传递和分享.首先点击左上角的文件选项卡.  2. 然后点击左侧命令列表中的打印选项,进入打印操作页面.  3. 进 ...

  9. php控制打印机打印设置,专为控制打印设计的CSS样式

    大多数Web设计师对打印控制还不是很熟悉,他们往往更迷恋像素,而不是打印机.在现实世界中,很多人依赖从网站上打印网页来参考: 在这个数字时代, 在一些特殊的场合,很多人手中还会拿着纸张.Web开发人员 ...

最新文章

  1. C#学习-EF在三层中使用
  2. 每日一则 LeetCode: Add Two Numbers
  3. AUC 评价指标详解,准确率(ACC),敏感性(sensitivity),特异性(specificity)计算 Python3【TensorFlow2入门手册】
  4. linux软链接的创建、删除和更新
  5. Zookeeper系列四:Zookeeper实现分布式锁、Zookeeper实现配置中心
  6. 【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond...
  7. 安卓能硬改的手机机型_手机后盖材质,金属比塑料的好,玻璃比金属的好,是这样么?...
  8. 《Spring实战》系列之Bean的装配-Days01
  9. java调用python,传参json字符串,含中文传参
  10. Springboot实现邮件发送(2020最新版)
  11. 理财最低持有天数是什么意思?
  12. 2011年我的关键词
  13. 华为5g鸿蒙麒麟,华为5G亮王牌:鸿蒙系统+7800W+麒麟990+防水,钱包按耐不住!
  14. qt5使用触屏 偶尔没响应_【喂你播】三星6亿像素传感器曝光;苹果承认部分iPhone 11存在触屏缺陷...
  15. 百度网盘搜索功能伪增强
  16. Android 安装包没有签名文件问题
  17. h5互动游戏制作方法是怎样_求h5游戏教程
  18. 2020计算机视觉会议地点,2020年计算机视觉与信息技术国际会议(CVIT 2020)
  19. python软著申请_软著申请注意事项放心选择
  20. 地表温度反演LST 自存步骤

热门文章

  1. PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)
  2. 16个Linux服务器监控命令
  3. [转]arm汇编相关链接
  4. 面向对象(内部类,static,包,访问修饰符,final)
  5. asp.net分页控件使用详解【附实例下载】
  6. Android--混淆打包找不到资源类的…
  7. struts2 从 action 到 jsp 页面
  8. RollingFileAppender
  9. textView代码设置文字居中失效 textView设置文字居中两种方法
  10. Android 几种换肤方式和原理分析