당신은
@interface EngineRequests : NSObject {
@protected
UInt32 dataVersion;
}
@property (assign) UInt32 dataVersion;
@end
@implementation EngineRequests
@synthesize dataVersion;
// methods can access self.dataVersion
@end
을 시도 할 수 있습니다하지만 당신은 액세스 외부/제어 권한을 부여 할 않는 한 당신은 정말, 속성을 필요가 없습니다. 클래스 인터페이스에서 UInt32 dataVersion
을 선언하고 구현하지 않고 dataVersion
을 참조하면 @protected
은 dataVersion
에 직접 액세스하는 외부 클래스를 방지합니다.
Objective-C Properties을 읽으셨습니까?
초기화
귀하의 EngineRequests
NSObject
의 서브 클래스입니다.
-(id)init {
self = [super init];
if (self != nil) {
self.dataVersion = 8675309; // omit 'self.' if you have no '@property'
}
return self;
}
을 또는 자신의 -(id)initWithVersion:(UInt32)version;
를 만들 : 따라서, 당신은 (보통한다) 등처럼 NSObject
의 -(id)init
방법을 대체 할 수 있습니다.
출처
2012-03-08 02:32:45
QED
완벽하게 작동했습니다. 매개 변수를 통해 해당 UInt32 var를 초기화 할 방법이 있다면 어떻게해야합니까? 내가 시도이 ** - (무효) initalizePacketVariables : (UINT32) 버전 {//...** 그러나 원인이 오류를 먹으 렴 ... –
추가 업데이 트. 귀하의 의견에 설명하는 방법도 잘 작동합니다. 'init' 작업은 Cocoa의 모범 사례입니다. – QED
괜찮아요. .. 나는이 모든 것을 알아 내려고 노력할 것입니다. 도움을 주셔서 감사합니다 –