8

我的项目中有一些常量文件“Constants.h”,它们包含在 Prefix.pch 文件中,可供项目中的所有类使用。它们只包含一堆#define 语句。

我的类无法识别这些常量(没有自动完成功能),并且每次使用它们时 Xcode 都会给我“未声明的标识符”错误。但是,当我运行项目时,一切正常(设置为忽略错误)。

有什么办法可以摆脱这些警告?#pragma 在前缀文件中忽略它们还是什么?我尝试了很多选项,包括在构建设置中将“预编译前缀标头”设置为 NO。

有任何想法吗?

编辑:我尝试删除派生数据和清理/删除构建文件夹无济于事。

可能值得注意的是,我的项目中有 3 个目标,并且该项目中有另一个项目。

此外,一些#imports 导入普通类。就像 UIFont 上的类别扩展和 Analytics 类。这会影响它吗?

4

4 回答 4

10

为了解决这个问题,我必须在目标的构建设置中将“预编译前缀标头”标志更改为 NO。通过这样做,您将失去通过缓存已编译的头文件实现的任何构建性能,但在我的情况下,我的 Prefix Header 非常小,因此我不会在构建所需的时间内看到任何影响。

于 2012-12-19T21:26:32.507 回答
3

尝试删除项目派生数据。Xcode 有时需要重新索引您的项目以删除诸如此类的“错误”。

组织者 > 项目 > 你的项目

单击派生数据行右侧的“删除”按钮。

立即退出 Xcode,然后重新打开。

于 2012-08-16T17:12:57.203 回答
2

我让 PCH 文件导入带有很多宏的 .h 文件(具体来说,我使用MJGAvailability标头,当我使用比我的部署目标更新的功能时会发出警告)。更换:

#import "MJGAvailability.h"

#include "MJGAvailability.h"

为我解决了这个问题。

于 2014-01-11T14:57:58.603 回答
0

我在我的一个目标中有一个预处理器宏,我从“预处理器宏”移动到“未在预编译头文件中使用的预处理器宏”,这解决了问题。

于 2012-08-17T21:06:11.870 回答