Objective c 带有常量的预编译头问题
在我的项目中有几个常量文件“constants.h”,我将它们包含在Prefix.pch文件中,以便项目中的所有类都可以使用。它们只包含一堆define语句 我的类无法识别这些常量(没有自动完成),每次使用它们时,Xcode都会给我“未声明的标识符”错误。但是,当我运行项目时,一切正常(设置为忽略错误) 我有没有办法摆脱这些警告#pragma在前缀文件中忽略它们还是什么?我尝试了许多选项,包括将“预编译前缀头”设置为“无内部版本设置” 有什么想法吗 编辑: 我已尝试删除派生数据并清理/删除生成文件夹,但没有效果 值得注意的是,我的项目中有3个目标,在这个项目中还有另一个项目Objective c 带有常量的预编译头问题,objective-c,xcode,constants,prefix,undeclared-identifier,Objective C,Xcode,Constants,Prefix,Undeclared Identifier,在我的项目中有几个常量文件“constants.h”,我将它们包含在Prefix.pch文件中,以便项目中的所有类都可以使用。它们只包含一堆define语句 我的类无法识别这些常量(没有自动完成),每次使用它们时,Xcode都会给我“未声明的标识符”错误。但是,当我运行项目时,一切正常(设置为忽略错误) 我有没有办法摆脱这些警告#pragma在前缀文件中忽略它们还是什么?我尝试了许多选项,包括将“预编译前缀头”设置为“无内部版本设置” 有什么想法吗 编辑: 我已尝试删除派生数据并清理/删除生成文
此外,一些#导入正常类。比如UIFont上的类别扩展和分析类。这会影响它吗?尝试删除项目派生数据。Xcode有时需要为项目重新编制索引,以删除这样的“错误” 组织者>项目>您的项目 单击派生数据行右侧的“删除”按钮
立即退出Xcode,然后重新打开。我的一个目标中有一个预处理器宏,我将它从“预处理器宏”移到了“预编译头中未使用的预处理器宏”,解决了这个问题。要解决这个问题,我必须在目标的构建设置中将“预编译前缀头”标志更改为“否”。这样做,您将失去缓存编译头文件所获得的任何构建性能,但在我的情况下,我的前缀头非常小,因此在构建所需的时间内,我看不到任何成功。我让PCH文件导入带有大量宏的.h文件(具体来说,我使用的标题在使用比部署目标更新的功能时发出警告)。 替换:
#import "MJGAvailability.h"
与
已为我解决此问题。“未声明的标识符”是一个错误,而不是一个警告。您不能使用未声明的标识符编译和运行程序。编辑以更正这一点,我指的是错误。我将其设置为忽略错误,因此程序仍然可以编译和运行,xcode只是在我编辑代码时给我这些错误。通常只有在我处于内部时,xcode才会在构建后立即识别它们e一个使用这些常量的类是否开始看到“错误”您到底设置了什么“忽略错误”?您无法编译和运行包含错误的程序。最好是“回答您自己的问题”,而不是编辑问题本身并将其标记为“已解决”,这样它就不会出现在“未回答的问题”中列表。已经尝试了很多次。还尝试删除生成文件夹,清理等。不断返回。解决了我的问题,我被困了一个小时。这也解决了我的问题,但它确实使编译速度大大降低。有没有办法避免?
#include "MJGAvailability.h"