iphone - 如何从其他地方调用 Objective-C 对象父类(super class)的方法?

标签 iphone objective-c cocoa overriding superclass

如果你正在实现一个子类,你可以在你的实现中显式调用父类(super class)的方法,即使你已经覆盖了那个方法,即:

[self overriddenMethod]; //calls the subclass's method
[super overriddenMethod]; //calls the superclass's method

如果你想从子类实现之外的某个地方调用父类(super class)的方法怎么办,即:

[[object super] overriddenMethod]; //crashes

这可能吗?并且通过扩展,是否有可能在实现中上升到不止一个级别,即:

[[super super] overriddenMethod]; //will this work?

最佳答案

一个更愉快的选择(用于调试)是添加一个类别方法来为您完成:

- (void) callSuperMethod { [super overriddenMethod]; }

事实上,没有更方便的方法来做到这一点,这在很大程度上是设计使然。

关于iphone - 如何从其他地方调用 Objective-C 对象父类(super class)的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2877251/

相关文章:

ios - 函数可以从异步 block 返回值吗

cocoa - NSUserNotificationCenter 关闭通知

iphone - UIView 可以知道它何时出现在屏幕上吗

iphone - 计算饼图中的旋转角度

ios - didUpdateLocations 为 : from: method is deprecated for latest iOS versions(12. 4).如何用 didUpdateLocations 替换它?

iOS : Remove a Persistent Storage in a Multithreading CoreData Implementation

iphone - 如何在 iOS 中获取 CSRF token ?

IOS8 UIscrollview 内部 uiview 问题

ios - 手动调用 didSelectRowatIndexPath

cocoa - NSTextView:用户粘贴数据时如何收到通知?