现象
往项目中添加一个 c 文件,编译器就会报错,只要将这个 c 文件删除掉,编译又会恢复正常。
原因
这个其实是 Xcode 编译中对 pch 文件的使用逻辑,项目中引入 c 文件后,pch 就会混合 #include 和 #import,为了降低编译器工作量,需要用预编译宏稍作区分。
解决方案
检查项目中所有的 pch 文件,将 OC 中才使用到的 "#import xxx" 放在 "#ifdef OBJC" 和 "#endif" 中,如下:
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif