При реализации подкласса Вы можете, в рамках Вашей реализации, явно называть метод суперкласса даже при переопределении того метода, т.е.:
[self overriddenMethod]; //calls the subclass's method
[super overriddenMethod]; //calls the superclass's method
Что, если Вы хотите назвать метод суперкласса от где-нибудь вне реализации подкласса, т.е.:
[[object super] overriddenMethod]; //crashes
Это даже возможно? И следовательно, это возможный повыситься больше чем один уровень в рамках реализации, т.е.:
[[super super] overriddenMethod]; //will this work?
Более приятным вариантом (для отладки) является добавление метода категории, который делает это за вас:
- (void) callSuperMethod { [super overriddenMethod]; }
Тот факт, что нет более удобного способа сделать это, очень важен.
Вы можете послать [[[класс объекта] суперкласс] methodForSelector: ...]
и вызвать через указатель IMP напрямую, если хотите... но если вы так делаете, то, вероятно, что-то очень неправильно в дизайне вашего приложения.