0

我是 Object-C 中的一个新功能。我想知道如何定义一个静态类变量。我根据一本书对此进行了编码:

static int count = 0; // staic class variable
@interface ClassA : NSObject{
}

+(int) initCount;
+(void) initialize;
@end

@implementation ClassA

-(id) init{
    if(self = [super init]){
        count++;
    }
    return self;
}

+(int) initCount{
    return count;
}

+(void) initialize{
    count = 0;
}
@end

你知道,这个变量count不在 ClassA 中,我可以像 C++ 一样定义静态类变量吗?在 C++ 中,我们可以这样定义:

@interface ClassA : NSObject{
static int count;
}
4

1 回答 1

2

您所做的一切看起来都不错,但是您应该在实现(.m文件)中声明静态变量。

所以你会有类似的东西:

@interface ClassA:NSObject 
+(int) initCount;
@end
// ClassA.m
static int count = 0;
@implementation
+(int) initCount{
  return count;
}
@end

Objective-C 没有“类变量”,但这样做会创建一个伪类变量。

于 2013-09-03T23:26:56.150 回答