PCH 文件简单使用与自定义NSLog
来源:互联网 发布:淘宝箱包类目 编辑:程序博客网 时间:2024/06/06 08:36
pch文件作用
pch文件就是一个头文件,可以被项目中的其他所有源文件共享和访问。正是因为pch文件这个特有的属性,所以当有一个宏,在很多文件都需要用到的时候,就是我们用pch文件的时候了。
pch作用:
1、 放一些全局的宏;
2、导入一些全局都需要的头文件,一般会放一些工具类的头文件,或者分类头文件等;
3、管理日志输出。
ps:为什么要管理日志输出?
在写代码的时候,很多的时候会用NSlog去输出看获取的数据、和内存地址等等。日志输出非常耗性能,在开发调试的时候输出没关系,但是发布的时候再输出就不对了,影响用户体验。而且我们不能一个个去找NSLog,然后屏蔽。
所以自定义日志输出,在发布的时候,调成release 版本,日志输出不打印任何内容,就不会消耗性能。
下面来说下如何使用PCH文件。
一、首先先创建 pch 文件,如下图
( 注意:创建pch 文件的时候,pch 命名一般和我们项目的名称保持一致 )
二、更改配置
创建完 pch 文件后,我们发现这个 pch 是不好使的,需要修改一些配置才好使。
点击我们的工程,选择 Build Setting –>在输入框输入 prefix –> 找到 Precompile Prefix Header 和 Prefix Header,做相应的修改,如下图:
Precompile Prefix Header这个选项的意思是,是否允许提前编译头文件,系统默认为 NO,这里改为YES;
Prefix Header 这个意思是让我们把创建的 pch 文件路径添加上。
怎么添加路径呢,右键点击我们的 pch 文件,选择 show in finder,如下图:
我们只需要找到 pch 文件上一级的目录就可以,苹果会帮我们找到根目录添加上,不需要我们去做。
所以,pch 文件的目录就是 PCHLearnTests/PCHLearn.pch (上一级目录/pch文件全名),如下图:
这样 pch 的配置就完成了,现在就可以正常使用 pch 文件了。
使用 pch 文件的一些小事项,如果有C文件,添加到pch文件里会报错,所以我们一般都会用
ifdef __OBJC__#define Height 10#import "UIImage+Image.h"endif
来判断,OC 的话,就在这里导入。
Xcode在每个OC 文件中都定义了这个宏,也就意味着只有OC中的文件才拥有这些宏,避免项目中有C文件的时候,报错。
最后来说下自定义输出,直接看代码就ok
//不要在意 __VA_ARGS__ 这个,这是系统默认的,我们这么写就会和系统的 NSLog 拥有相同的日志输出功能#ifdef DEBUG // 调试#define XWBLog(...) NSLog(__VA_ARGS__)#else // 发布#define XWBLog(...)#endif
做判断,如果是Debug 的时候,我们就打印日志,如果是 release 版本,就不打印日志,不需要去找到输出屏蔽了。
ps: Debug 版本(开发调试版本) Release 版本(发布版本,即用户使用版本) ,Debug版 改为 Release版,如下图:
将 Debug 改为 Release 即可。
最后,把整体的代码放上,谢谢
// __OBJC__每个OC文件都会自动定义这个宏#ifdef __OBJC__// pch原理:pch里面的内容被项目中的所有文件共有,实际上就是将头文件在每个源文件中添加上// pch作用:// 1.存放一些公用的宏#define Height 10// 2.存放一些公用的头文件#import "UIImage+Image.h"// 3.自定义Log(输出日志)// ...标示在宏里面的可变参数// __VA_ARGS__ 标示函数里面的可变参数#ifdef DEBUG // 调试#define XWBLog(...) NSLog(__VA_ARGS__)#else // 发布#define XWBLog(...)#endif#endif
- PCH 文件简单使用与自定义NSLog
- 42-在pch文件中自定义NSLog
- PCH文件自定义NSLog及存在C文件时PCH文件定义注意事项
- pch文件的简单使用
- iOS 【应用程序原理-3 importantFiles(Info.plist、InfoPlist.strings、.pch文件/自定义NSLog宏)】
- 使用PCH及巧妙使用NSLog
- iOS开发PCH文件、NSLog真机不打印
- iOS通过宏定义设置NSLog打印出类名、方法名和NSLog所在行数以及PCH文件的使用
- iOS NSlog的使用以及pch的使用
- Xcode7创建pch全局宏定义文件,去除NSLog
- xcode使用pch预编译文件来禁止nslog打印
- PCH文件的使用
- pch文件使用
- pch文件的使用
- PCH文件的使用
- pch文件的使用
- PCH文件使用
- iphone 开发之pch文件的创建与使用
- Spark性能优化:数据倾斜调优
- JAVA字符串格式化-String.format()的使用
- 隐藏应用图标并保持应用能正常调试运行
- Android6.0动态申请权限
- Solr之基于注解开发-yellowcong
- PCH 文件简单使用与自定义NSLog
- $.get $.post $.getJSON $.load异步请求的区别
- LintCode 第167题目 链表求和
- 比特币学习之-P2P网络
- Lucene的入门
- ijkplayer编译
- 9. Golang 资源
- appium环境搭建 window 和 mac 笔记本
- Spark性能优化:shuffle调优