내가 만든 클래스에 카테고리가 있으며이 카테고리는 구현시 속성이 필요한 프로토콜을 준수합니다. 그러나 카테고리에 속하기 때문에이 카테고리를 구현할 때 속성을 종합 할 수 없습니다. 이 때문에 setter 메서드를 구현하는 방법을 잘 모르겠다. 프로토콜의 속성을 읽기 전용으로 유지하면 괜찮 았기 때문에 필요한 것은 접근 메서드이기 때문이다.iOS 카테고리는 속성이있는 프로토콜을 준수합니다. 구현 방법
- (void)setDidDisplayRecommendation:(BOOL)didDisplayRecommendation
{
self.didDisplayRecommendation = didDisplayRecommendation;
}
하지만이 때 나는 컴파일러 오류를 얻을 :
내가 이렇게하면 내가 무한 루프를 얻을 수 있습니다 알고@protocol SomeProtocol <NSObject>
@property (nonatomic) BOOL didDisplayRecommendation;
@end
:
이
내 프로토콜입니다- (void)setDidDisplayRecommendation:(BOOL)didDisplayRecommendation
{
_didDisplayRecommendation = didDisplayRecommendation;
}
didDisplayRecommendation은 프로토콜의 속성입니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 미리 감사드립니다!
[오브젝티브 C 카테고리 및 새로운 바르] (의 중복 가능성 http://stackoverflow.com/questions/10502539/ –
중복되지 않으며 프로토콜 준수 문제를 해결하지 않음 – Mason
(at) 속성이있는 범주 (비 원자, 유지)에 "특수"속성을 추가 할 수 있습니다. MyClass * anObject -하지만 구현 파일에서 할 수있는 것은 동적 인 anObject 일 뿐이므로, Associative References cfunction을 사용하여 해당 속성 대신 다른 객체를 가장 할 수 있습니다. 작동하며 해결 방법이 아니며 상용 응용 프로그램에서이 작업을 수행 할 수 있으며 통과 프로토콜 구현을 통과합니다. – unmircea