Я пытаюсь расширить протокол UIAlertViewDelegate с помощью одного дополнительного метода делегата.
интерфейс
@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
реализация
@dynamic delegate
когда я использую его в myViewController, например:
HPAlertView *alertView = [[HPAlertView alloc] initWithWebURL:myURL tile:myTitle];
[alertView setDelegate:self];
У меня 2 вопроса:
если я назначу делегата @dynamic, мой делегат в HPAlertView всегда будет нулевым, даже если setDelegate: self
если я назначу делегату значение @synthesize, мой делегат отвечает только на новые методы делегирования @optional, а не на методы делегата UIAlertView.