iOS:PCH文件的使用

PCH文件全称Precompile Header File.也就是预编译头文件的意思.

PCH主要有三个作用:

1.放一些公用的宏定义.(一个宏可能在多个控制器都会用到,正常需要在每个控制器都写一次,但是将宏定义写在PCH文件中只需要写一次就可以了)

2.把公共的model类#import导入写到PCH文件中.(一个model可能在多个控制器都会需要导入它的头文件,将#import写在PCH文件中就可以在所有控制器中使用)
3.自定义NSLog.(我们在开发的时候可能会使用很多NSLog来测试程序,但是这些NSLog在程序上架之后就没有用了并且还会拖累程序运行速度,一个个去删除可能花费很多时间,使用自定义NSLog可以一次性的删除这些NSLog)

创建方式:

cmd+n来到新建页面选择other中的PCH File,一般不需要改名字.


接下来在Build Settings中找到下面这两个,将Precompile Prefix Header设置成YES,将Prefix Header设置成$(SRCROOT)/所在文件夹名字/PrefixHeader.pch.


这样PCH文件就生效了

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.

#endif /* PrefixHeader_pch */
//公用的宏定义
#define ABC 100
//公用的model类头文件导入
#import "Person.h"
//自定义NSLog
#ifdef DEBUG
#define MCLog(...) NSLog(__VA_ARGS__)
#else
#define MCLog(...)
#endif

将公用宏定义和公用的model类头文件写在PCH文件中所有的类都可以使用,并且可以正常输出.

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    MCLog(@"%d",ABC);
    Person *person = [[Person alloc]init];
    person.name = @"xiaoli";
    MCLog(@"%@",person.name);
}

自定义NSLog代码的意思是当程序为DEBUG阶段的时候使用NSLog,当程序为release也就是发布状态的时候使用自定义Log替换系统的NSLog使其失效.

在Edie Scheme中下图中的Build Configuration修改为Release可以将程序调整成发布状态.

当程序调整成发布状态之后我们自定义的Log就不会再输出了.


需要注意的是很多时候我们需要使用到C语言,在C语言的类中我们的一些#import头文件是会报错的.

所以我们在PCH文件中如果只想要这行代码在OC中生效,就将他写在下面的这两行代码中间.

#if __OBJC__
#endif





1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值