PrefixHeader.pch文件在Xcode工程里的添加使用
来源:互联网 发布:nds二手淘宝哪家店 编辑:程序博客网 时间:2024/04/29 02:03
在Xcode6
之前
,新建一个工程的时候,系统会自带
一个pch (precompile header)文件。在开发过程中,可以把那些在整个工程中,都广泛使用的头文件,包含在该文件下。编译器会自动将pch文件中的头文件,添加到所有的源文件中去。这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性。但潜在的也带来了一些问题,这可能是Xcode6中默认不再创建pch的原因吧。Xcode6之后,刚才说的那些美好都没有了~原因是什么呢?
我根据stackoverflow的一个观点,总结如下:
- 因为module,我们没有了
#import <Cocoa/Cocoa.h>
的需求 - 你在prefix header中写的代码是没有必要的。哪儿需要import,你就在那儿写。把你的定义写到他们所属的文件中去。把你的宏,哎,除非没有别的路,还是停止写宏吧。如果,哥们儿,你实在要写宏,那你就把它们放在一个头文件中引入。
- 只有当一个文件又大,而且几乎整个程序都要用(就像
Foundation.h
),我们才有必要用prefix header。但是矛盾来了,如果你有这么个文件,它又大又无处不在,你是不是该想想,你这是啥架构啊。 - 最重要的原因,prefix header导致代码很难重用,而且会导致一些莫名其妙的编译问题。
但是,在一些情形,如维护代码,或者利用以前的一些代码的时候,我们可能会用到prefix header,有没有解决方法呢?必须有啊!
只需两步!
- 1、在工程中新建一个.pch文件。
- 2、将它与编译设置关联。我对Clang不了解,但是在path中写的
$(SRCROOT)/BlockAndDelegatePassValueDemo/PrefixHeader.pch
,还是很好理解的。$(SRCROOT)
代表了工程的相对路径,你写完path,敲一下回车,path里就是绝对路径了
,然后紧跟后面的/BlockAndDelegatePassValueDemo
是相对工程名,最后是/PrefixHeader.pch
.pch的名。
最近又学习到一种更好的方式$(SRCROOT)/$(PROJECT_NAME)/PrefixHeader.pch
,其中$(PROJECT_NAME)
是相对工程名,比上面的方法更便捷.
编译一下,你就会发现,你所希望的美好又回来了!
0 0
- PrefixHeader.pch文件在Xcode工程里的添加使用
- prefixHeader.pch文件在Xcode工程中的添加
- Xcode中如何添加PrefixHeader.pch文件
- Xcode6 里没有了pch 的文件 PrefixHeader.pch
- 将PrefixHeader.pch添加到Xcode项目
- PrefixHeader.pch添加头文件报错
- 关于在Xcode工程中的pch文件的配置
- 关于iOS PrefixHeader (PCH文件) 的配置
- 在Xcode中添加pch文件的操作
- xcode中prefixHeader.pch文件找不到怎么解决?
- Xcode 添加PCH文件
- Xcode 6.1之后pch文件的添加
- Xcode-工程添加预编译头文件Prefix.pch
- 给工程添加pch文件以及pch文件的作用
- iOS开发中添加PrefixHeader.pch要注意的问题
- iOS开发中添加PrefixHeader.pch要注意的问题
- Xcode8 新建PrefixHeader.pch文件
- Xcode8 新建PrefixHeader.pch文件
- mysql replication架构
- sphinx setOverride 思考
- Android sqlite执行insert,英文单引号报错问题的解决
- 1099. Build A Binary Search Tree (30)
- Android手机识别相关
- PrefixHeader.pch文件在Xcode工程里的添加使用
- 学习笔记-linux中的时间管理
- UVA 113 Power of Cryptography
- java设计模式精品教程
- [Django高级]理解django中的中间件机制和执行顺序
- Spring 注解@Transactional readOnly=true
- 厦门烂尾楼大起底 “维权”悠着点
- String str = new String("abc")和String str = "abc"区别
- 值类型和引用类型的区别以及都包含哪些