我刚刚遇到块,我认为它们正是我正在寻找的东西,除了一件事:是否可以从块中调用方法 [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];
}
也许我不允许给推子这个功能......?