目标C中的全局变量

时间:2010-06-29 10:52:55

标签: objective-c variables static

我有一个计数器,用于在该计数器索引处获取一个对象,我需要在另一个类中访问它。

如何在Objective C中声明静态变量?

2 个答案:

答案 0 :(得分:2)

不是将其设为全局,而是让一个类访问另一个类的计数器,或让两个类共享拥有该计数器的第三个类:

ClassA.h:
@interface ClassA {
    int counter;
}
@property (nonatomic, readonly) int counter;

ClassA.m
@implementation ClassA
@synthesize counter;

ClassB.h:
#import "ClassA.h"
@interface ClassB {
    ClassA *a;
}

ClassB.m:
@implementation ClassB
- (void)foo {
    int c = a.counter;
}

答案 1 :(得分:1)

嗨alJaree,
您在Your类的实现中声明了一个静态变量,并通过静态访问器启用对它的访问:

some_class.h:
@interface SomeClass {...}
+ (int)counter;
@end

some_class.m: 
@implementation SomeClass
static int counter;
+ (int)counter { return counter; }
@end