访问 Objective-C 中的静态类变量



我想在类之外使用类变量。

我所说的"外部"是指我实例化类的主函数。

@interface Class: NSObject
static int var_class;   // Class variable
{
int var_object; // Object variable
}
@end
@implementation Class
@end

为了访问var_object,对象变量,我们使用:

int main(void)
{
Class *object = [Class new];
// Access to the variable
object->var_object;
(*object).var_object;
return 0;
}

我以为我可以以同样的方式访问类变量var_class

但他们都没有奏效。(无法编译(

Class.var_class;
// -> Generates error: could not find setter/getter for 'count' in class 'TheClass'
Class->var_class;
// -> Generates error: error: expected '.' before '->' token

如何获取/设置类变量的值?

声明函数是访问类变量的方法,但我希望它更简单。

@interface Class: NSObject
static int var_class;   // Class variable
+(int) get;
+(void) set: (int) val;
@end
@implementation Class
+(int) get
{
return var_class;
}
+(int) set: (int) val
{
var_class = val;
}
@end

Objective-C 中没有静态类变量,因此你不能指望像Class.var_class这样的东西。这就是为什么你的最后一个命题是正确的,并且被普遍采用。参见,Objective-C 是否支持类变量?

----编辑----

一些新的构造被添加到 Objective-C 中,请参阅 Objective-C 类属性。因此,语法被允许,而没有自动合成。

最新更新