Я пытаюсь использовать 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
в качестве цели, потому что подкласс переопределяет методы суперкласса) или мне нужно искать какой-то другой подход?