私はデリゲートとプロトコルのコンセプトを客観的なcで明確にしたいと思います。 だから人は、プロトコルのメソッドを定義したが、実際に両方でそれを実装していない場合はどのような正式な代理人の場合はデリゲートとプロトコルobjective
非公式 2フォーマルプロトコル 1))の2種類...があります。クラスBはAのデリゲートであり、AはオプションのメソッドWindowDidMoveを持ちます。何が行動だろうか???クラスbのデリゲート関数を実装する必要があります。私はちょうどそれを実装することはできませんし、私はどこでもそれを使用する...と逆にそれを定義することはできませんし、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についても解答を編集してください。異なるクラスの単一のオプションのメソッドに対して別々の実装を与えるとどうなりますか? また、プロトコルクラスと他のどこでもそれを使用したい。この点もクリアしてください –