객관적인 c에서 대리인 및 프로토콜의 개념을 명확히하고 싶습니다. 그래서 사람이 프로토콜 방법을 정의 실제로 모두를 구현하지 않은 경우 어떤 공식적인 위임의 경우대리인 및 프로토콜 목표
비공식 2 공식 프로토콜 1))의 두 가지 유형 ...이 있습니다. 즉 B 클래스는 A의 델리게이트이고 A는 WindowDidMove 메소드를 옵션으로 가지고 있습니다.이 경우. 무슨 행동이 될까요 ??? 클래스 b에서 대리자 기능을 구현해야합니다. 난 그냥 그것을 구현하고 어디서나 내가 원하는대로 그것을 사용할 수 없다 ... 그리고 반대로, A에서 정의하고 B 또는 클래스 C 또는 D 별도의 구현을 제공하고 그들을 사용하지만 나는 ...이 점을 명확히하십시오 - @class A;
@protocol ADelegate <NSObject>
@optional
- (BOOL)A:(A *)foo doSumfin:(BOOL)decide;
@end
@interface A : NSObject {
NSString *bar;
id <ADelegate> delegate;
}
@property (nonatomic, retain) NSString *bar;
@property (nonatomic, assign) id <ADelegate> delegate;
- (void)someAction;
@end
또한, 라인에게 우리가 달성
id <A Delegate > delegate;
@property (nonatomic, assign) id <ADelegate> delegate;
도움 .. 비공식 프로토콜의 경우
... 난 아직 방법에 대한 구현을 제공하지 않는 경우를 무엇을 위임 메서드를 호출 ... 무슨 일이 일어날까요?
시나리오 2를 설명하는 대답도 편집하십시오 ... 정식 프로토콜의 경우 .. 다른 클래스의 단일 선택적인 메서드에 대해 별도의 구현을 제공하면 무엇입니까? 또한 구현을 제공하면 어떻게 될지 프로토콜 클래스와 다른 모든 곳에서 사용하고 싶습니다. 이 점을 분명히하십시오. –