Ho una classe base objc:Estensione di un delegato da una classe base
@protocol BaseClassDelegate;
@interface BaseClass : NSObject
@property (nonatomic, weak) id <BaseClassDelegate> delegate;
@end
@protocol BaseClassDelegate <NSObject>
-(void)baseDelegateMethod;
@end
sto creando un rapido sottoclasse in cui voglio estendere il mio delegato ...
protocol SubClassDelegate : BaseClassDelegate {
func additionalSubClassDelegateMethod();
}
class SubClass: BaseClass {
@IBAction func onDoSomething(sender: AnyObject) {
delegate?.additionalSubClassDelegateMethod(); <--- No such method in 'delegate'
}
}
Ora, quando creo la mia sottoclasse, posso dire che è conforme a SubClassDelegate e impostare il delegato. Il problema è (ovviamente), è che "delegato" non esiste in questa sottoclasse. C'è un modo per dire al compilatore di 'estendere' il mio delegato nella mia sottoclasse? (o sono pazzo qui e ho perso qualcosa di ovvio)
Grazie. La seconda opzione funzionava anche se la prima opzione sembrava più delegata, ma produceva errori del compilatore w.r.t. ignorando la proprietà e il tipo. – Fittoburst
Sì, mi dispiace, non è possibile sovrascrivere una proprietà per renderla più specifica della classe genitore. Ho aggiornato il primo campione. – redent84