你可以嘗試
@interface EngineRequests : NSObject {
@protected
UInt32 dataVersion;
}
@property (assign) UInt32 dataVersion;
@end
@implementation EngineRequests
@synthesize dataVersion;
// methods can access self.dataVersion
@end
但你並不真正需要的屬性,除非要授予外部訪問/控制。您可以在類接口中聲明UInt32 dataVersion
,然後在沒有self.
的實現中參考dataVersion
。無論哪種方式,@protected
都將阻止外部類直接訪問dataVersion
。
您是否閱讀過Objective-C Properties?
初始化
你EngineRequests
是NSObject
一個子類。因此,你可以(一般應該)覆蓋的NSObject
-(id)init
方法,像這樣:
-(id)init {
self = [super init];
if (self != nil) {
self.dataVersion = 8675309; // omit 'self.' if you have no '@property'
}
return self;
}
或者創建自己的-(id)initWithVersion:(UInt32)version;
。
來源
2012-03-08 02:32:45
QED
完美的工作,說如果我有一個方法是通過參數初始化該UInt32 var,我該怎麼做? 我試過這個** - (void)initalizePacketVariables:(UInt32) {//...** 但是,這會導致錯誤.. – 2012-03-08 02:37:39
已添加更新。您在評論中描述的方法也可以正常工作。 'init'是Cocoa的最佳實踐。 – QED 2012-03-08 02:44:01
好涼爽..我會盡力並把它全部弄清楚。感謝您的幫助 – 2012-03-08 02:48:25