Я только что столкнулся с блоками, и я думаю, что они именно то, что я ищу, за исключением одного: можно ли вызвать метод [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];
}
Возможно, мне не разрешено давать фейдеру функцию...?