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

问题描述 投票:0回答:1

我想在课程之外使用课程变量。

通过'外部',我是指实例化该类的主要功能。

@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
1个回答
0
投票

Objective-C中没有静态类变量,因此您不能期望像Class.var_class这样的东西。这就是为什么您的最后一个主张是正确的并且被普遍采用的原因。参见Does Objective-C support class variables?

© www.soinside.com 2019 - 2024. All rights reserved.