iOS开发 替换NSLog打印设置

在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很大程度上影响应用的性能,针对这种问题可以写一些宏来控制这些调试信息的输出。

在release版本禁止输出NSLog内容

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

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

如何实现:

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

#ifdef DEBUG

#   define DLog(fmt, ...) {NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);}
#   define ELog(err) {if(err) DLog(@"%@", err)}
#else
#   define DLog(...)
#   define ELog(err)

上段代码的意思就是用DLog替换NSLog;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 13:48:39

iOS开发 替换NSLog打印设置的相关文章

iOS开发项目篇—54"设置"界面的搭建

iOS开发项目篇—54"设置"界面的搭建 一.实现 新建一个设置控制器,当点击“我”控制器导航栏“设置”按钮时,即跳转到该界面 1.在“我”控制器中对导航栏“设置按钮”的处理 1 // 2 // YYProfileViewController.m 3 // 4 5 #import "YYProfileViewController.h" 6 #import "YYCommonGroup.h" 7 #import "YYCommonItem

iOS开发中NSLog输出格式大全

本文的内容是总结了一下iOS开发中NSLog输出格式大全,虽然比较基础,但有总结毕竟会各位正在学习iOS开发的朋友们一些小小的帮助. %@                   对象 %d, %i               整数 %u                    无符整形 %f                     浮点/双字 %x, %X              二进制整数 %o                    八进制整数 %zu size_t %p            

iOS开发项目篇—50设置cell的背景

iOS开发项目篇—50设置cell的背景 一.简单说明 当前样式: 1.去掉分隔线 2.设置背景图片(新浪提供了四种图片,底部的图片有阴影) cell的四种背景图 问题:cell怎么知道自己当前是处在第几组的第几行? 在自定义cell中提供一个方法,共外界传递当前的组和行 YYCommonCell.h文件 1 // 2 // YYCommonCell.h 3 // 4 5 #import <Foundation/Foundation.h> 6 @class YYCommonItem; 7 @i

(转)iOS开发之同一应用设置不同图标和名称

本文转自:http://www.devzeng.com/blog/ios-two-version-app-setting-profile.html iOS开发之同一应用设置不同图标和名称 SEP 6TH, 2014 经常在开发中遇到同一个App会有很多渠道版本,比如OTA内部测试版本,AppStore发布版本等.针对这些不同的版本我们通常会选择不同的图标.应用名称等,效果如下图所示: P.S上面使用的两个测试图标分别来源于土巴兔和乐视TV的iPhone版本APP的图标,是两个非常不错的APP,感

iOS开发之状态栏的设置

状态栏的字体为黑色: UIStatusBarStyleDefault 状态栏的字体为白色: UIStatusBarStyleLightContent 一.设置样式的方法 iOS6 -- iOS9 : [objc] view plain copy [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; iOS7 -- iOS9 : [objc] view plain copy - (UI

【iOS开发-66】QQ设置界面的案例:利用storyboard开发静态的tableView界面,核心是Static Cells

(1)效果 (2)利用tableViewController自带的cell做 --核心是tableView的内容要设置为Static Cells类型.而默认是DynamicPrototypes. --然后选择分组样式,3组,每组几个row等等.

IOS开发教程--NSLog输出格式控制

%@ Object %d, %i signed int %u unsigned int %f float/double %x, %X hexadecimal int %o octal int %zu size_t %p pointer %e float/double (in scientific notation) %g float/double (as %f or %e, depending on value) %s C string (bytes) %S C string (unichar)

【Swift】ios开发中巧用 description 打印对象时,打印对象的属性

ios开发中我们打印对象的时候,会直接输出对象地址,这样不方便我们开发.我们可以 巧用 description 打印对象时,输出对象的属性 在oc中直接重写即可.swift中需要遵守Printable协议 看下面的例子 1 override var description: String { 2 let properties = ["属性1", "属性2", "属性3", "属性4"] 3 4 return "\(d

文顶顶iOS开发博客链接整理及部分项目源代码下载

文顶顶iOS开发博客链接整理及部分项目源代码下载 网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作.有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获. 在此也向@文顶顶 表示严重感谢! 由于文顶顶博客博文繁多,每次找文章需要频繁的翻页,