2010-05-24 3 views
0

getter/setter의 구문을 찾고 있습니다. 세터와 게터는 어느 것인가 ??@property objective-c 구문

readwrite 속성이 getter입니까?
세터를 할당합니까?

 
@interface SomeClass : NSObject 
{ 
    NSString *str; 
    NSDate *date; 
} 

@property (readwrite, assign) NSString *str; 
@property (readwrite, assign) NSDate *date; 

답변

6

게터 또는 설정 자도 아닙니다. readwrite은 set 메소드의 생성 여부를 제어하고 assign은 메모리 관리 체계를 지정합니다 (이 경우 변수는 유지되지 않습니다. 실수 일 수 있습니다).

전체 속성 선언 구문은 the relevant docs을 참조하십시오.

+0

다음과 같은 속성을 교환 할 수 있는지 여부는 알 수 없지만 그 문서는 매우 훌륭합니다. @property (copy, readwrite) NSString * value; @property (읽기 쓰기, 복사) NSString * value; – okami

+0

@okami : 주문을 교환 할 수는 있지만, 일반적으로 작성한 명령과 다른 명령은 다른 사람이 코드를 스캔하는 데 덜 유용 할 수 있습니다. – corprew

+0

링크가 깨졌습니다. : – devios1

2

this page을 확인해야합니다.

READWRITE는 = 재산 읽고이 심판 계산 할 필요가없는 속성입니다 =

할당을 기록 할 수 있습니다. (대안 덮어 경우 속성 값이 설정 retain ED 및 release D 것을 의미하는 '유지'한다

+0

링크가 끊어져 "페이지"가 ​​불행히도 매우 좋은 앵커가 아닙니다. –

2

나도는 전기 코드가 인터페이스 선언하지 단계;.. 게터와 세터는 @implementation 맥락에서 이동 보통.

@synthesize str; 
@synthesize date; 

는 속성 선언 후 갈 수있는 속성을 제공하고 있습니다에 같이 @synthesize 지시어를 사용하여 만든이 경우, readwrite는 (사용 속성의 값이 설정 될 수 있음을 지정하는 someObject.str = @"foo" 구문), 반대는 readonly이며 이는 값 속성의 값을 설정할 수 없습니다. assign - copy 또는 retain은 속성 값이 직접 설정되는 반면, 후자의 두 값은 값의 복사본을 만들고 값을 보유한다는 것을 의미합니다.

2

getter 및 setter는 @property을 사용할 때 자동으로 만들어지는 두 가지 방법입니다. 기본적으로 getter는 속성과 동일한 이름을 가지며 setter의 접두어는 set이고 접미사는 :입니다. 예를 들어 str 속성의 경우 [someobj str]을 호출하여 str 속성을 얻고 [someobj setStr: somestr] 속성을 가져올 수 있습니다.

readwriteassign 속성은 @synthesize을 사용하여 정의를 만드는 경우이 가져 오기 도구와 설정자가 정의되어야하는 방법에 대한 정보를 제공합니다. readwrite은 단순히 재산을 설정할 수 있다고 말하고 assign은 재산을 어떻게 설정할지 말합니다. 자세한 내용은 the documentation을 참조하십시오.