Chamando [self methodName] de dentro de um bloco?

Acabei de encontrar blocos e acho que eles são exatamente o que estou procurando, exceto por uma coisa: é possível chamar um método [self methodName] de dentro de um bloco?

Isto é o que estou tentando fazer:

-(void)someFunction{
    Fader* fader = [[Fader alloc]init];

    void (^tempFunction)(void) = ^ {
        [self changeWindow:game]; 
        //changeWindow function is located in superclass
    };

    [fader setFunction:tempFunction];
}

Estou procurando há alguns dias e não consigo encontrar nenhuma evidência de que isso seja possível.

Isso é possível, ou estou tentando usar blocos para algo a que eles não foram feitos?

A razão pela qual estou usando blocos é que criei uma classe Fader e quero armazenar um bloco para que ele seja executado quando terminar o desbotamento.

Obrigado

EDIT: Ok, eu adicionei na sugestão, mas ainda estou recebendo um erro EXC_BAD_ACCESS ...

-(void)someFunction{
    Fader* fader = [[Fader alloc]init];

    __block MyScreen* me = self;

    void (^tempFunction)(void) = ^ {
        [me changeWindow:game]; 
        //changeWindow function is located in superclass
    };

    [fader setFunction:tempFunction];
    [fader release];
}

Talvez eu não tenha permissão para darfader a função...?