objective-c - 속성이란 - c# 읽기 전용



BOOL 속성 사용 (2)

Apple은 BOOL 속성을 다음과 같이 선언 할 것을 권장합니다.

@property (nonatomic, assign, getter=isWorking) BOOL working;

Objective-C 2.0 속성과 점 표기법을 사용할 때 self.working 사용 self.working 속성에 액세스합니다. 나는 [self isWorking] 사용할 수도 있음을 알고 있습니다.하지만 그럴 필요는 없습니다.

그래서 도트 표기법을 사방에 사용하면서 왜 추가 속성을 정의해야합니까? 간단히 글을 쓸 수 있을까요?

@property (nonatomic, assign) BOOL working;

아니면 내 경우 getter=isWorking (점 표기법 사용)을 쓰는 데 어떤 이점이 있습니까?

감사!

https://src-bin.com


Answer #1

Apple은 문체 목적으로 isX 게터를 선언하는 것을 권장합니다. 도트 표기법이나 메시지 표기법을 올바른 이름으로 사용하는 한 게터 이름을 사용자 정의할지 여부는 중요하지 않습니다. 점 표기법을 사용하려고해도 아무런 차이가 없지만 여전히 속성 이름으로 액세스합니다.

@property (nonatomic, assign) BOOL working;

[self setWorking:YES];         // Or self.working = YES;
BOOL working = [self working]; // Or = self.working;

또는

@property (nonatomic, assign, getter=isWorking) BOOL working;

[self setWorking:YES];           // Or self.working = YES;, same as above
BOOL working = [self isWorking]; // Or = self.working;, also same as above

Answer #2

Apple은 문체 목적으로 권장합니다. 다음 코드를 작성하는 경우 :

@property (nonatomic,assign) BOOL working;

그렇다면 [object isWorking]을 사용할 수 없습니다.
오류가 표시됩니다. 하지만 아래 코드를 사용하면

@property (assign,getter=isWorking) BOOL working;

그래서 [object isWorking]을 사용할 수 있습니다.





properties