вызов «я» внутри блока сохраняет его. используйте __weak или __block и создайте слабую ссылку на себя, прежде чем использовать его внутри блока

ько что натолкнулся на блоки, и я думаю, что это именно то, что я ищу, за исключением одного: возможно ли вызвать метод [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 и хочу сохранить блок для его выполнения, когда он завершит исчезновение.

Спасибо

РЕДАКТИРОВАТЬ: Хорошо, я добавил в предложении, но я все еще получаю ошибку 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];
}

Может быть, я не могу датьфейдер функция...?

Ответы на вопрос(5)

Ваш ответ на вопрос