目的 c のデリゲートとプロトコルの概念を明確にしたいと思います。したがって、プロトコルには 2 つのタイプがあります。1) 公式 2) 非公式
正式なデリゲートの場合..その人がプロトコルメソッドを定義していても、両方で実際に実装していない場合はどうなりますか? つまり、クラス B は A のデリゲートであり、A にはオプションとしてメソッド WindowDidMove があります...その場合。挙動はどうなる???クラスbでデリゲート関数を実装する必要があります。Aに実装して、好きな場所で使用することはできません...逆にAで定義せず、BまたはクラスCまたはDで個別の実装を提供し、それらを必要に応じて使用します...この点を明確にしてください– @クラス 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;
私たちが達成するのを手伝ってください..
非公式プロトコルの場合...メソッドの実装を提供せずにデリゲートメソッドを呼び出すと...どうなりますか.?