如何使用全局类访问声明UInt32变量

时间:2012-03-08 02:29:05

标签: iphone ios uint32

我正在尝试声明一个可以被类中的任何方法访问的UInt32变量。

所以它的全局类方法,但不是任何其他类......

我试图在.h

中这样做
@interface EngineRequests : NSObject {

    UInt32 dataVersion;
}

@property (copy) UInt32 dataVersion;

但那不起作用..我在@property等行上遇到错误。我甚至需要那个或者只是在顶部使用UInt32也没关系。

2 个答案:

答案 0 :(得分:1)

你可以尝试

@interface EngineRequests : NSObject {
@protected
   UInt32 dataVersion;
}

@property (assign) UInt32 dataVersion;
@end

@implementation EngineRequests

@synthesize dataVersion;

// methods can access self.dataVersion

@end

但除非您想授予/控制外部访问权限,否则您并不真正需要该属性。你可以在类接口中声明UInt32 dataVersion,然后在没有dataVersion的情况下在实现中引用self.无论哪种方式,@protected都会阻止外部类直接访问dataVersion

您是否已阅读Objective-C Properties

初始化

您的EngineRequestsNSObject的子类。因此,您可以(通常应该)覆盖NSObject的{​​{1}}方法,例如:

-(id)init

或者创建自己的-(id)init { self = [super init]; if (self != nil) { self.dataVersion = 8675309; // omit 'self.' if you have no '@property' } return self; }

答案 1 :(得分:0)

您需要仅在接口内声明变量,以使其对所有类方法可见。使用@property ....创建getter-setter将使其成为类变量,并且它将在类外部可见。你必须这样做。

@interface EngineRequests:NSObject {

UInt32 dataVersion;

}

仅此而已。