Calling [self methodName] desde dentro de un bloque?

Me acabo de encontrar con bloques y creo que son justo lo que estoy buscando, excepto por una cosa: ¿es posible llamar a un método [self methodName] desde un bloque?

Esto es lo que estoy tratando de hacer:

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

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

    [fader setFunction:tempFunction];
}

He estado buscando durante un par de días y no puedo encontrar ninguna evidencia de que esto sea posible.

¿Es esto posible, o estoy tratando de usar bloques para algo para lo que no están destinados?

La razón por la que estoy usando bloques es porque he creado una clase Fader, y quiero almacenar un bloque para que se ejecute cuando termine de desvanecerse.

Gracia

EDIT: De acuerdo, agregué la sugerencia, pero sigo recibiendo un error 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];
}

Tal vez no tengo permitido dar fader la función...

Respuestas a la pregunta(4)

Su respuesta a la pregunta