Ich versuche eine NSInvocation
zu verwenden, um eine Superklassenmethode aus der Unterklasse aufzurufen. Der Code beteiligt ist relativ einfach, es geht so:iOS - Kann 'Super' nicht als Referenz verwenden?
- (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;
}
Dies scheint ein wenig seltsam für mich, wie ich immer war davon ausgegangen, dass super
so ziemlich die gleichen Regeln wie self
gefolgt (dh es als direktes behandelt werden könnte Bezug auf das betreffende Objekt und Zuordnung zu Variablen, die als Rückgabewert verwendet werden usw.). Dies scheint in der Praxis nicht der Fall zu sein.
Wie auch immer, gibt es einen einfachen Weg, um meine NSInvocation
auf die Superklasse-Implementierung (ich kann self
nicht als Ziel verwenden, weil die Unterklasse überschreibt die Oberklasse-Methoden), oder muss ich für einen anderen Ansatz suchen?
funktioniert self.superclass? (rate einfach hier ...) – Pochi