我定义的常量给我“未声明的标识符”问题。我将它们放在.cc文件中的Constants.h文件中。我认为这可能与我的.pch文件有关,但是,如果我从那里删除它,并在需要常量之一的类之一中尝试#import,那么我仍然会收到“未声明的标识符”错误。

如果我将每一个#define行直接放在.m类文件的顶部,它们将起作用。所以我的语法是正确的。

所以.h文件本身有点问题,但我不知道是什么。

//
//  Constants.h

// Sliding Drawer
#define kOffscreenX 320    // X coord when Sliding Drawer is offscreen
#define kVisibleX 40       // X coord when Sliding Drawer is visible

// WordlistButton
#define kNumScores 3

// Fonts
#define kMessageFontSize 14
#define kScoreFontSize 10

最佳答案

仅从这段代码中看不到错误。预处理器往往会创建非常混乱的东西,尤其是在涉及循环导入时。

您可以尝试删除标头的当前编译版本,请注意它不在derived data文件夹中,而是在XCode的缓存中(请参阅“项目”->“构建设置”->“预编译的标头缓存路径”)。

但是,如果您尝试直接导入Constants.h却没有成功,则问题可能出在其他地方。

您确定只有1个名为Constants.h的文件吗?请注意,您应该为文件使用前缀(例如,如果SAConstants.h是您的名字,请使用Smooth Almonds),以避免与Apple的标头或正在使用的库的标头冲突。

如果直接导入标题,请转到.m文件并点击Product -> Generate Output -> Preprocessed File并在其中找到Constants.h导入。是您的标题吗?

顺便说一句,有一篇不错的文章,关于在预编译头文件http://qualitycoding.org/precompiled-headers/中避免这种情况

10-04 13:16
查看更多