Como lançar blocos de e para void *

Então, eu estou tentando passar um bloco como umNSAlert contextInfo parâmetro.

[myAlert beginSheetModalForWindow: theWindow
                    modalDelegate: myAlert
                   didEndSelector: @selector(alertDidEnd:returnCode:contextInfo:)
                      contextInfo: (void *) aBlock];

e pegue de volta na outra ponta:

void (^responseBlock)() = (__bridge_transfer void (^)()) contextInfo;

O que funciona, até certo ponto. Antes da minha chamada parabeginSheetModalForWindow:... aBlock está em0x00007fff610e1ec0e na resposta (alertDidEnd:...), contextInfo está em0x00007fff610e1ec0.

No entanto, quando tento chamar o bloco:

responseBlock();

Estou tendo o erro a seguir

erro: o tipo de objeto chamado '__block_literal_generic *' não é um ponteiro de função ou função
erro: 1 erros de análise de expressão

Como alguém elenco corretamente blocos para um devoid *s por uma questão de transferência simples?

Editar: Tentativa completa de código, usando os métodos de conversão sugeridos nas respostas. Agora recebo um erro EXC_BAD_ACCESS noresponseBlock(); ligar.

- (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo
{
    void (^responseBlock)() = (__bridge typeof(responseBlock)) contextInfo;

    switch (returnCode)
    {
        case NSCancelButton:
        {
            break;
        }

        case NSOKButton:
        {
            responseBlock();
            break;
        }
    }
}

Outras notas: Ao usar__bridge, o endereço de memória deresponseBlock econtextInfo são diferentes, enquanto que com__bridge_transfer, eles são os mesmos. Nem alivia o problema EXC_BAD_ACCESS.

TRABALHANDO:
[myAlert beginSheetModalForWindow: theWindow
                    modalDelegate: myAlert
                   didEndSelector: @selector(alertDidEnd:returnCode:contextInfo:)
                      contextInfo: (__bridge_retained void *) [aBlock copy]];

e depois...

void (^responseBlock)() = (__bridge_transfer typeof(responseBlock)) contextInfo;

questionAnswers(1)

yourAnswerToTheQuestion