I been developing a custom UIAlertView class to have an completion block. Is it ok to have a delegate reference to itself?? For example:
PYAreaAlertView.h
@interface PYAreatAlertView : UIAlertView
@property (nonatomic, copy) CompletionBlock completion;
- (id)initWithCompletion:(CompletionBlock)completion;
@end
PYAreaAlertView.m
@interface PYAreaAlertView () <UIAlertViewDelgate>
@end
@implementation PYAreaAlertView
- (id)initWithCompletion:(CompletionBlock)completion
{
    self = [super init];
    if (self)
    {
        _completion = completion
        self.title = @"Add Area"
        self.message = @"";
        self.delegate = self // Is this ok??
    }
    return self
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
    if ([buttonTitle isEqualToString:@"Done"] && self.completion)
        self.completion();
}