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...