Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 带有常量的预编译头问题_Objective C_Xcode_Constants_Prefix_Undeclared Identifier - Fatal编程技术网

Objective c 带有常量的预编译头问题

Objective c 带有常量的预编译头问题,objective-c,xcode,constants,prefix,undeclared-identifier,Objective C,Xcode,Constants,Prefix,Undeclared Identifier,在我的项目中有几个常量文件“constants.h”,我将它们包含在Prefix.pch文件中,以便项目中的所有类都可以使用。它们只包含一堆define语句 我的类无法识别这些常量(没有自动完成),每次使用它们时,Xcode都会给我“未声明的标识符”错误。但是,当我运行项目时,一切正常(设置为忽略错误) 我有没有办法摆脱这些警告#pragma在前缀文件中忽略它们还是什么?我尝试了许多选项,包括将“预编译前缀头”设置为“无内部版本设置” 有什么想法吗 编辑: 我已尝试删除派生数据并清理/删除生成文

在我的项目中有几个常量文件“constants.h”,我将它们包含在Prefix.pch文件中,以便项目中的所有类都可以使用。它们只包含一堆define语句

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

我有没有办法摆脱这些警告#pragma在前缀文件中忽略它们还是什么?我尝试了许多选项,包括将“预编译前缀头”设置为“无内部版本设置”

有什么想法吗

编辑: 我已尝试删除派生数据并清理/删除生成文件夹,但没有效果

值得注意的是,我的项目中有3个目标,在这个项目中还有另一个项目


此外,一些#导入正常类。比如UIFont上的类别扩展和分析类。这会影响它吗?

尝试删除项目派生数据。Xcode有时需要为项目重新编制索引,以删除这样的“错误”

组织者>项目>您的项目

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


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

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

要解决这个问题,我必须在目标的构建设置中将“预编译前缀头”标志更改为“否”。这样做,您将失去缓存编译头文件所获得的任何构建性能,但在我的情况下,我的前缀头非常小,因此在构建所需的时间内,我看不到任何成功。

我让PCH文件导入带有大量宏的.h文件(具体来说,我使用的标题在使用比部署目标更新的功能时发出警告)。 替换:

#import "MJGAvailability.h"


已为我解决此问题。

“未声明的标识符”是一个错误,而不是一个警告。您不能使用未声明的标识符编译和运行程序。编辑以更正这一点,我指的是错误。我将其设置为忽略错误,因此程序仍然可以编译和运行,xcode只是在我编辑代码时给我这些错误。通常只有在我处于内部时,xcode才会在构建后立即识别它们e一个使用这些常量的类是否开始看到“错误”您到底设置了什么“忽略错误”?您无法编译和运行包含错误的程序。最好是“回答您自己的问题”,而不是编辑问题本身并将其标记为“已解决”,这样它就不会出现在“未回答的问题”中列表。已经尝试了很多次。还尝试删除生成文件夹,清理等。不断返回。解决了我的问题,我被困了一个小时。这也解决了我的问题,但它确实使编译速度大大降低。有没有办法避免?
#include "MJGAvailability.h"