【发布时间】:2012-05-14 06:47:04
【问题描述】:
我正在尝试使用NSInvocation 从子类调用超类方法。涉及的代码比较简单,大致如下:
- (NSInvocation*) invocationWithSelector:(SEL)selector {
NSInvocation* call = [[NSInvocation alloc] init];
[call retainArguments];
call.target = super; //ERROR: use of undeclared identifier 'super'
call.selector = @selector(selector);
return call;
}
这对我来说似乎有点奇怪,因为我一直认为 super 遵循与 self 几乎相同的规则(即它可以被视为对相关对象的直接引用并分配给变量,用作返回值等)。在实践中似乎并非如此。
无论如何,有什么简单的方法可以让我的NSInvocation 以超类实现为目标(我不能使用self 作为目标,因为子类覆盖了超类方法),还是我需要寻找其他的方法?
【问题讨论】:
-
self.superclass 有效吗? (只是在这里猜测......)
标签: objective-c cocoa-touch inheritance nsinvocation