如图。我在xx-Prefix.pch
预编译文件中添加了#import "YYMacro.h"
,其中定义了一些公共常用的宏和常量。这样就不需要在每个源文件中再import一次,节省代码并且可以提高便以速度。
大部分情况下,一切工作正常。但是,偶尔,XCode会出现一些Bug,导致无法完全加载pch里的头文件,而代码里用到的在Macro.h中定义的常量,全部被标识为未定义:
虽然不影响编译运行,但是却让代码可读性变得很差,无法正常自动补全。试过了以下方法:
- 重启XCode
- Product – Clean
- Build – Run
无果。
摸索并搜索之后,找到了解决方法。
解决方法
1. 打开DerivedData目录
打开Window
–Organizer
,点击右箭头
:
2. 定位到Index – PrecompiledHeaders
3. 删掉相关的预编译头文件目录
由于XCode打开的可能是Workspace,包含了多个工程,而大部分工程的pch工作正常,所以我们不需要删除整个PrecompiledHeaders
,只需要删除无法正常工作的工程的相关目录,就是以工程名为前缀的那几个。
4. 重新编译
现在,一切又正常了。
结论
与XCode相关的Bug,比如变量无法正确被加载,头文件没有被import,修改了xib文件但是在模拟器中不起作用,等等,都可以通过删除DerivedData
的中间文件解决。
原文作者: lslin
原文链接: http://blog.lessfun.com/blog/2014/09/18/xcode-not-load-all-headers-in-prefix-pch/
版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0