2011-03-10 2 views
1

일부 인스턴스 변수가있는 클래스가 있고 해당 i-vars를 도트 표기법 속성을 통해 "읽기 전용"으로 사용하려고하지만 동일한 것으로 나타낼 수 있습니다. 수업 시간 내에 Dot Notation을 사용하여 Property Mutator를 사용할 수있는 시간.Objective-C 속성에서 뮤 테이터가 비공개로 남아있는 동안에 만 접근 자 노출

@property (readonly) .... 
다음

이 경우에도 내가 뮤 테이터 나 자신 (-(void) setMyIvar:) 내가 점 표기법으로 사용하지 못할 쓰고 있어요 : 문제는

, 그건 내가 그런 내 .H 파일에 선언하고있어입니다 컴파일러가 (정당히) 속성이 읽기 전용이라고 불평하기 때문입니다.

나는 그런 (인터페이스 확장 내부) 내하는 .m 파일에서 다시 선언 재산에 시도 :

@inteface MyClass() 
@property (retain) myIvar; 
@end 

그러나 컴파일러는이 두 선언을 수락하지 않았습니다.

내가 할 수있는 방법이 있습니까?

답변

2

당신은이 작업을 수행 할 수 있지만,이처럼해야 할 것이다 : 당신의 구현에서

@property (retain,readonly) .... 

: 즉

@inteface MyClass() 
@property (retain,readwrite) myIvar; 
@end 

, 선언 떨어져, 동일해야합니다 접근성에서.

+0

위대한 답변입니다. 재산의 접근 가능성과 부동산의 "속성"이 분리되어 있음을 알지 못했습니다. –

관련 문제