Ich bin gerade auf Blöcke gestoßen und ich denke, sie sind genau das, wonach ich suche, abgesehen von einer Sache: Ist es möglich, eine Methode [self methodName] aus einem Block heraus aufzurufen?
Das versuche ich zu tun:
-(void)someFunction{
Fader* fader = [[Fader alloc]init];
void (^tempFunction)(void) = ^ {
[self changeWindow:game];
//changeWindow function is located in superclass
};
[fader setFunction:tempFunction];
}
Ich habe seit ein paar Tagen gesucht und kann keine Beweise dafür finden, dass dies möglich ist.
Ist das überhaupt möglich oder versuche ich, Blöcke für etwas zu verwenden, für das sie nicht bestimmt sind?
Der Grund, warum ich Blöcke verwende, ist, dass ich eine Fader-Klasse erstellt habe und einen Block speichern möchte, damit er ausgeführt wird, wenn er ausgeblendet ist.
Vielen Dank
EDIT: Okay, ich habe den Vorschlag hinzugefügt, aber ich erhalte immer noch einen EXC_BAD_ACCESS-Fehler ...
-(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];
}
Vielleicht darf ich dem Fader nicht die Funktion geben ...?