2012-06-11 3 views
0

나는 목표 -c에 완전히 새로운 것으로 현재 학습 과정에 있습니다. 부모 클래스 A에 속성 A가 있습니다. 속성에 액세스하려고합니다. 서브 클래스 B에, 나는 그것을 선택 선언 B에 대한 눈에 띄는 @ 인터페이스를 불평하지 않는 속성에 액세스이메시지 스타일 구문으로 하위 클래스의 속성에 액세스

[self a:3]; 

같은 값을 할당 할 때

하지만 난 것처럼에서 읽을 액세스하는 경우 int something = [self a]; 그러면 불평하지 않습니다.

속성에 액세스하는 권장 방법은. 객체와 속성 사이에 있지만 기술적으로 말하면 메시지 스타일 호출로 작동해야합니다. 하지만 그렇지 않으니 제발 조언 해주세요.

내 코드는 다음과

// Test class A 
@interface A : NSObject 

@property int a; 

-(void) initMe; 

@end 

@implementation A 

@synthesize a; 

-(void) initMe 
{ 
NSLog(@"I am in A"); 
} 
@end 

//------------------------- 

@interface B : A 

-(void) initEx; 

@end 

@implementation B 

-(void) initEx 
{ 
    // This line gives a problem as I mentioned above 
    [self a:3]; 
    NSLog(@"In child class B"); 
} 

@end 

///----------------------- 

답변

3

[self a:3]; 같은 것은 잘못된 구문입니다. setter 메소드를 호출하려면 다음과 같아야합니다.

[self setA:3]; 
+0

[Self getA]가 아닌 [self a] 값을 읽고 싶을 때 이상합니다. 왜이 다른 명명 스타일을 가져오고 설정합니까? :( – Ahmed

+1

@Ahmed 여기에 대한 모든 정보는 https://developer.apple.com/library/mac/#documentation/cocoa/conceptual/objectivec/Chapters/ocProperties에서 찾을 수 있습니다. .html # // apple_ref/doc/uid/TP30001163-CH17-SW17 – Alladinian

+0

애플 대회이므로'get ...'을 사용하지 말고 항상'set ... '을 사용하십시오. –

관련 문제