【发布时间】:2011-06-28 18:09:54
【问题描述】:
我刚刚遇到块,我认为它们正是我要寻找的,除了一件事:是否可以从块中调用方法 [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];
}
也许我不允许给 fader 功能...?
【问题讨论】:
-
接受的答案是过时的。请接受我的answer,不要用错误的语法混淆人们。
标签: objective-c self objective-c-blocks