NSLog设置不打印

  在调试应用程序的时候经常需要进行打印需要的信息,但是当打印的地方多了之后在真机上跑应用程序就会相应的慢很多,输出语句多了之后会在很大程序上影响应用程序的性能。这里我们可以定义一个宏来控制是否输出调试信息。

 在Release模式下禁止输出调试信息

  因为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版本的时候就不会打印了,提高了性能。

文章参考自微信公众号:iOS开发

  

时间: 2024-10-12 14:51:51

NSLog设置不打印的相关文章

adobe acrobat设置黑白打印

通常,文章总是采用黑白打印,打印出来的效果往往与电脑显示效果不同,为不必在打印店白跑一趟,可采用虚拟打印,下面是adobe acrobat设置黑白打印的方法: 选择Print->Advanced->Color:Composite Gray即可.

如何安装和配置打印服务器之二:设置打印机打印权限并通过UNC方式添加打印机

如何安装和配置打印服务器之二:设置打印机打印权限并通过UNC方式添加打印机 ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者http://blog.51cto.com/lander 2018/09/18 7:55 问题描述 在打印服务器上安装好的打印机如何设置常见的属性,例如允许哪些人打印. 解决方法 开始之前请先阅读博文:.根据实际需求,可以在打印服务器对这台打印机进行属性设置. 1.设置打印机至允许IT部门使用.在AD创建了IT部门专用 O

设置SecureCRT打印中文字符

1. 设置方法 使用SecureCRT打印由STM32发送的中文字符提示信息,显示乱码.在网上找了一些链接,再加上自己摸索,终于出了能够让SecureCRT打印中文的方法. 设置以下几个地方即可. 1.1 Terminal--->Emulation,选择右侧的Terminal值为ANSI: 1.2 Terminal--->Appearance,选择Current color scheme的值为Monochrome:选择Character encoding的值为简体中文GB2312. 以下是设置

[办公应用]如何设置IE打印时的默认页边距,并设置纸张为横向(会计票据打印)

最近一个做会计的同事询问,如何将IE打印时的默认页边距更改,并且每次都要是横向的纸张. 这是因为她已经测试好纸张的大小,并据此调整好了页边距.可惜的是下一次打印时,又要重新调整一遍. 经过研究,方法如下(应该适用于各个版本的IE): 第一步:注册表修改(如果你不会,请你找朋友修改),找到如下位置 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup 看到margin开头的上下左右的地方既可以修改.(\margin_rig

scarpy设置日志打印级别和存储位置

在settings.py中配置 日志级别设置 LOG_LEVEL = 'ERROR' # 当LOG_LEVEL设置为ERROR时,在进行日志打印时,只是打印ERROR级别的日志 日志存储设置 LOG_FILE = './log.txt' # 将日志信息写入到log.txt文件中 如果你想存储在数据库中 嗯...打开日志本地文件,正则............ 原文地址:https://www.cnblogs.com/pythonywy/p/11742970.html

[python][odlboy]设置字符串打印的颜色

格式:\033[显示方式;前景色;背景色m 说明:前景色            背景色           颜色---------------------------------------30                40              黑色31                41              红色32                42              绿色33                43              黃色34         

4月6日学习笔记——css设置网页打印样式

有三种方法 1. 为屏幕显示和打印分别准备一个css文件,如下所示:  用于屏幕显示的css: <link rel="stylesheet" href="css/noprint.css" media="screen" />  用于打印的css:<link rel="stylesheet" href="css/print.css" media="print" />

Altium Designer6打印PCB 设置

1.File-->Page Setup     Printer Paper一栏是打印纸的设置,不再罗嗦.     主要是Scaling一栏:ScaleMode项选择:ScaledPrint     下面的Scale填1,表示1:1的比例打印.如下图1:   2.然后点选图1中的Advanced标签,进入打印内容设置. 在Printout&Layers项目下面,将Top Overlay去掉(右键-->delete) 后面的项目设置如图2所示. 我做的一般是单层板,所以,一般只保留Bott

ArcGIS地图打印设置

1.需求:客户自己开发的Engine程序,调用的是LayoutControl,需要连接大型绘图仪进行出图. 业务流程是先框选要打印的地图范围,该范围是自定义大小,框选完成之后进行预览,然后选择打印输出,在打印输出界面进行设置后,由惠普绘图仪进行出图. 2.出现的问题:惠普打印机里用的是卷筒纸,宽为定值,长度可以无限延长,客户说纸张大小是A1的大小.框选范围进行打印时,有时候打印出来是完整的.有时候如果范围较小,或者过大,打印出来就不完整,图没有按照希望的方向进行打印,只打出了一半.或者图打完整了