2012-12-05 2 views
0

저는 apple에서 Object-c 개발자 핸드북을 읽기 시작했습니다. 나는 특성으로 노는거야. 나는 두 개의 프로퍼티를 가진 클래스 인터페이스를 선언했다 : 프로퍼티에 관련된 인스턴스 변수를 선언하지 않고objective-c 속성 - no attribute

@interface SocialEnglish : NSObject <IsSociable> 
@property int numberOfPeopleMet; 
@property (readonly) int readOnlyProperty; 
@end 

을 선언하지 않았다. 놀랍게도 컴파일러는 불평하지 않았습니다. 그런 다음 인스턴스 객체에 액세스하기 위해 많은 코드를 작성 했으므로 setter 및 getter가 구현되어 인스턴스 변수에 연결된 것처럼 작동합니다. 나는 이런 식으로 뭔가를 할 수있는 선언 클래스에서

는 :

... 
_readOnlyProperty = 3; 
... 

흠 ... 나는 GOTA 어쩌면 ... 나는 그것을 좋아하지 않아이만큼 도움이 말한다. 왜 컴파일러는 불평하지 않고 대신 코드를 생성합니다. 설정해야 할 설정이 있습니까?

구현 클래스에 @synthesize 지시문이 없습니다.

감사합니다.

답변

3

Xcode의 최신 버전은 자동으로 "synthesize"이 속성을 선언했습니다. This came in with Xcode 4.0 ("컴파일 : LLVM2.0"의 링크 된 릴리스 노트 참조). 이 "@synthesize"를 전화, 또는 "_readOnlyProperty"바르 또는 정적 그에게 "@synthesize"를 선언하거나 자신의 세터에게 & 게터를 작성하려면

, 당신은이 일을 계속할 수 있습니다.

관련 문제