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