我在一个类中有一个常量,我想从另一个类访问。 我想访问这些:
#define kStateRunning 1
#define kStateGameOver 2
#define kStateMenu 3
位于GameController.h
的{{1}}中。在Level1.m
我有Level1.h
以及实施文件中的导入。
我试着寻找答案,但我不确定我是否正确地写了这些。
答案 0 :(得分:6)
如果您使用#define myConstant
,则导入文件后将会知道myConstant
。例如,在导入和GameController.h
之间@Interface
的开头定义它们。
然后,如果您在其他一个文件中导入GameController.h
(让我们以Level1.m
为例)。您可以使用它,而无需添加前缀。只需使用myConstant
答案 1 :(得分:3)
我不会使用#define
,因为你丢失了编译器的任何检查。通常,您使用常量来避免在整个代码中使用可能拼写错误或键入错误的魔术值。
在Coding Guidelines的Apple文档中,他们会告诉您如何处理每种类型的常量。
对于像你这样的简单整数,他们认为enums
是最好的选择。它们在Apple框架中被广泛使用,因此您知道它们很好。
您仍然需要在标题中定义它。
e.g。 (使用您自己的前缀而不是PS
)
typedef enum {
PSGameStateRunning = 1,
PSGameStateGameOver,
PSGameStateMenu,
} PSGameState;
如果您需要
,这也有一个可以传入/返回函数的类型的优点