iPhone EXC_BAD_ACCESS ao usar blocos

Estou tentando criar um retorno de chamada simples usando blocos. Eu tenho um MainViewController que addSubView outro DatePickerViewController.view eu criei um bloco como este

typedef void(^DateChangedBlock)(NSDate*);

E eu tenho um método no meu DatePickerViewController chamado

setOnDateChangedCallback:(DateChangedBlock)callback

Armazeno o retorno de chamada em uma propriedade do DatePickerViewController. A visualização DatePickerViewController é uma instância UIDatePicker, vinculou uma IBAction ao valor alterado para um método que faz iss

- (IBAction)dateChanged:(id)sender {

    if (dateChangedCallback != nil)
    {
        dateChangedCallback(nil);
    }
}

Aqui está como eu registro o bloco no MainViewController

DatePickerViewController *dateController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerView" bundle:nil];

self.datePicker = dateController;
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 100, 200)];
[self.view addSubview:textView];
DateChangedBlock myBlock = ^(NSDate *newDate) {
 textView.text = @"testing";
};

[self.datePicker setOnDateChanged: myBlock];
[self.datePicker dateChanged:self]; // force trigger (this works).

Quando forço o acionamento do método dateChanged no DatePickerViewController, ele não funciona. Mas quando o próprio datepicker aciona o método através do IBAction, recebo um erro EXC_BAD_ACCESS. O erro ocorre neste método na linha "int retVal".

#import <UIKit/UIKit.h>

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil); // THREAD 1: program received EXC_BAD_ACCCESS.**
    [pool release];
    return retVal;
}

O que estou fazendo errado

questionAnswers(3)

yourAnswerToTheQuestion