我正在尝试创建可以从任何来自Java背景的类访问的变量我很难在Objective-C中理解这一点。
在Java中我们有:public static int MAIN_MENU = 1, SELECTION_SCREEN = 2;
这些可以在任何地方访问:
ClassName.MAIN_MENU;
如何以最简单的形式为Objective-C实现同样的东西,让它保持在一个类中?
答案 0 :(得分:3)
在Objective-C中,类没有静态成员。我能想象到的最好的方法是使用一个完全丑陋的全局变量创建一个getter和setter类方法:
static T _member = initialValue;
+ (T)someStaticMember
{
return _member;
}
+ (void)setSomeStaticMember:(T)newVal
{
_member = newVal;
}
如果你只需要一个吸气剂,我。即模拟一个只读成员,然后在函数内部移动静态变量,至少你会少一个全局那样。
BUT:如果您只需要整数常量,为什么不使用enum
?或者至少是一些宏?
答案 1 :(得分:0)
如果您的目标是仅在自己的类中使用静态变量,则可以在.m
文件中声明您的变量,否则您必须使用#define
定义全局常量。
#define CONSTANT [ any value ]
答案 2 :(得分:0)
#define MAIN_MENU 1
。NSInteger const MAIN_MENU = 1;
,在h文件中使用extern NSInteger const MAIN_MENU;
。 #import
这个头文件要使用MAIN_MENU