Я только что натолкнулся на блоки, и я думаю, что это именно то, что я ищу, за исключением одного: можно ли вызвать метод [self methodName] из блока?
Вот что я пытаюсь сделать:
-(void)someFunction{
Fader* fader = [[Fader alloc]init];
void (^tempFunction)(void) = ^ {
[self changeWindow:game];
//changeWindow function is located in superclass
};
[fader setFunction:tempFunction];
}
Я искал пару дней и не могу найти никаких доказательств того, что это возможно.
Это вообще возможно, или я пытаюсь использовать блоки для чего-то, для чего они не предназначены?
Причина, по которой я использую блоки, заключается в том, что я создал класс Fader и хочу сохранить блок для его выполнения, когда он завершит исчезновение.
Спасибо
EDIT:
Хорошо, я добавил в предложение, но я все еще получаю ошибку 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];
}
Может быть, мне не разрешено давать фейдеру функцию ...?