如何在我的 Objective-C 类中创建一个静态变量?我熟悉在我的头文件中为私有变量使用@private,但我正在尝试创建一个访问静态变量的静态方法。我应该如何在我的头文件中声明这个静态变量?
问问题
1460 次
3 回答
3
在这方面,Objective-C 只是遵循 C —— 你制作静态文件变量。在您的实现(即您的 .m 文件)中,将声明放在任何地方(但理想情况下,放在文件顶部等合理的地方,如果仅在一个地方访问,甚至在相关方法中)。
如果您想提供对此类静态的受控访问,请将其放在任何方法实现之外,并使用类方法来访问它。
于 2011-07-06T19:16:55.410 回答
2
Objective-C 的静态变量遵循 C 中静态变量的相同规则(存储修饰符)。您可以在文件或函数范围内声明静态变量,但它们与实例变量一样与您的类无关。
于 2011-07-06T19:15:33.567 回答
1
Objective-C 没有静态类变量。但是,您可以创建模块静态变量(就像在 C 中一样)。要拥有一个私有的静态变量:
//MyClass.m
static int MyStatic;
@implementation MyClass
@end
将给出MyStatic
模块级范围。因为这只是 C,所以如果不通过extern
声明使其公开可见,就无法使 MyStatic 可见,例如 MyClass 上的类别。由于静态变量实际上是全局变量,这可能是一件好事——MyClass 应该尽其所能隐藏MyStatic
.
如果您希望静态变量公开(您真的不想这样做):
//MyClass.h
extern int MyStatic;
@interface MyClass {}
@end
//MyClass.m
int MyStatic;
@implementation MyClass
@end
于 2011-07-06T19:24:28.533 回答