我的项目中有一些常量文件“Constants.h”,我将其包含在Prefix.pch文件中,以供项目中的所有类使用。它们只包含一堆#define语句。
我的类不识别这些常量(没有自动完成),Xcode每次使用时都会给出“未声明的标识符”错误。但是,当我运行项目时,一切正常(设置为忽略错误)。
有什么办法可以摆脱这些警告吗? #pragma在前缀文件中忽略它们还是什么?我尝试了很多选项,包括在构建设置中将“预编译前缀头”设置为NO。
有什么想法吗?
编辑: 我尝试删除派生数据和清理/删除构建文件夹无济于事。
值得注意的是,我的项目中有3个目标,而该项目中有另一个项目。
此外,一些#imports导入普通类。就像UIFont和Analytics类的类别扩展一样。这会影响吗?
答案 0 :(得分:10)
要解决此问题,我必须在目标的Build Settings中将'Precompile Prefix Header'标志更改为NO。通过执行此操作,您将失去通过缓存编译头文件实现的任何构建性能,但在我的情况下,我的前缀标头非常小,所以我不会看到构建所需的时间。
答案 1 :(得分:3)
尝试删除项目派生数据。 Xcode有时需要重新索引你的项目,以消除这样的“错误”。
组织者>项目>你的项目
单击“派生数据”行右侧的“删除”按钮。
立即退出Xcode,然后重新打开。
答案 2 :(得分:2)
我有PCH文件导入带有很多宏的.h文件(具体来说,我使用MJGAvailability标头,当我使用比我的部署目标更新的功能时会发出警告。 替换:
#import "MJGAvailability.h"
与
#include "MJGAvailability.h"
为我解决了这个问题。
答案 3 :(得分:0)
我的一个目标中有一个预处理器宏,我从“预处理器宏”移动到“未在预编译头中使用的预处理器宏”,这解决了这个问题。