Ich bin dankbar, wenn jemand die Logik hinter der Protokollvererbung erklären kann. z.B. Was bedeutet die folgende Mittelwert (UITableView.h):Verstehen der Protokollvererbung in Objective-C
@protocol UITableViewDelegate<NSObject, UIScrollViewDelegate>
Die folgende Klasse Implementierung funktioniert nicht. Ich habe eine Klasse View1 (die UIView erbt), mit einem zugehörigen Protokoll. Ich habe eine andere Klasse, View2 (die View1 inheritert). Jetzt möchte ich auch das Protokoll erben. Kann mir bitte jemand in die richtige Richtung zeigen.
Klasse 1:
@protocol View1Delegate;
@interface View1 : UIView {
id <View1Delegate> delegate;
// . . .
}
@property (nonatomic, assign) id <View1Delegate> delegate; // default nil. weak reference
@end
@protocol View1Delegate <NSObject>
- (void)View1DelegateMethod;
@end
@implementation View1
@synthesize delegate;
// . . .
@end
Klasse 2:
@protocol View2Delegate;
@interface View2 : View1 {
id <View2Delegate> delegate;
// . . .
}
@property (nonatomic, assign) id <View2Delegate> delegate; // default nil. weak reference
@end
@protocol View2Delegate <NSObject>
- (void)View2DelegateMethod;
@end
@implementation View2
@synthesize delegate;
// . . .
@end
Dank für Ihre Antwort danken. Ich erkläre das Protokoll, wie Sie erwähnt haben, aber das Problem, mit dem ich konfrontiert bin, ist mit der Deklaration der ID <...> Delegat; In View1 habe ich ID delegieren; mit ihr ist @property und @synthesize zugeordnet. Da ich View1 in View2 vererbe, wenn ich id delagete deklariere; Mit der zugehörigen Eigenschaft @property und @synthesize erhalte ich einen Fehler: "Property 'delegate' versucht, ivar 'delegate' zu verwenden, das in der Superklasse von 'View2' deklariert ist. Wie kann diese Situation richtig behandelt werden? habe oben gepostet. –
Mustafa