빠른 질문 :속성 또는 속성이 아닌가요? 의미에 대한
내가 선호하는 프로토콜을 쓰는 경우 :
// (a)
@protocol MyProtocol
@property (nonatomic, copy) NSSet *things;
@end
대는
// (b)
@protocol MyProtocol
- (NSSet *)things;
- (void)setThings:(NSSet *)things;
@end
(a)는 청소기 코드이지만 의미를 가지 구현 클래스는 things
을위한 ivar를 가질 것이고 이것은 나의 프로젝트에서는 그렇지 않다. 내 유스 케이스 때문에 things
도 KVO가 될 수 없습니다. 또한 구현 클래스가 copy
things
이 될 것임을 암시합니다. 모든 경우에 해당하지 않습니다.
(b)는 더 정확한 코드입니다 (KVO를 할 수 있는지/할 수 없는지에 대해 매우 명시 적입니다.)하지만 조금 복잡합니다.
의견이 있으십니까?
(b) "messier"는 어떻습니까? – rmaddy
변형 a에는 copy 속성이 있습니다. getter 및 setter 메서드로 간단히 처리하는 것이 더 간단하지 않습니까? –
구현에서 모든 것을 복사한다고 가정 했으므로 구현에 따라 완전히 다른 방식으로 저장하고 표시 할 수 있습니다. – deanWombourne