我定义的常量给我“未声明的标识符”问题。我将它们放在.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/中避免这种情况