J'essaie d'étendre le protocole UIAlertViewDelegate avec une méthode déléguée facultative.Protocole étendu UIAlertViewDelegate
Interface
@protocol HPAlertViewDelegate;
@interface HPAlertView : UIAlertView<UIWebViewDelegate>{
id <HPAlertViewDelegate> delegate;
UIWebView *webView;
}
@property (nonatomic, assign) id <HPAlertViewDelegate> delegate;
@property (nonatomic, retain) UIWebView *webView;
- (id)initWithWebURL:(NSString *)url title:(NSString *)aTitle;
@end
@protocol HPAlertViewDelegate <UIAlertViewDelegate>
@optional
- (void)HPAlertViewWebViewDidLoad:(HPAlertView *)alertView;
@end
mise en œuvre
@dynamic delegate
quand je l'utilise dans MyViewController comme:
HPAlertView *alertView = [[HPAlertView alloc] initWithWebURL:myURL tile:myTitle];
[alertView setDelegate:self];
J'ai 2 questions:
si je mets délégué à @dynamic, mon délégué HPAlertView est toujours nulle même avec setDelegate: auto
si je mets délégué à @synthesize, mon Respond délégué uniquement aux nouvelles méthodes déléguées @optional et non aux méthodes déléguées UIAlertView.
Je sais que ce n'est pas ce que vous demandez, mais vous ne devriez pas vraiment sous-classe 'UIAlertView'. – hypercrypt