gpt4 book ai didi

iphone - 如何调用祖 parent 方法

转载 作者:太空狗 更新时间:2023-10-30 04:01:39 26 4
gpt4 key购买 nike

我需要调用我类(class)的祖 parent 方法。

@class Grandparent
+--->@class Parent
+---->@class Child

每个类实现一个方法:

-(void)foo

如果我想从我使用的子类调用父方法 foo:

[super foo]

如果我想调用祖 parent 的 foo,我该怎么做?无法调用

[super [super foo]]

Ant 的想法?

最佳答案

当然,您可以在父类的帮助 的帮助下完成此操作。如果您的 foo 调用 [super foo] 而您的父类(super class)则反过来调用 [super foo] 因为它期望这种行为,那么你就大功告成了。这是一个常见的模式(例如 -init-dealloc)。

但是你不能使用普通的 Obj-C 语法直接跳转。每个子类围绕其状态和方法为类定义自己的一组语义。如果您可以在继承链上的任何地方任意调用实现而中间实现对此一无所知,那么任何实现都不会对其自身状态的完整性有任何保证,并且会破坏围绕类的抽象。

换句话说,我讨厌这样说的人,如果这似乎是您真正想要做的,您应该重新考虑您的设计。 (如果是这样,请随时提出一个新问题来讨论您的对象模型的设计。这里的人们将很乐意提供帮助。)

也就是说,从技术上讲,我怀疑您可以通过直接处理 Obj-C 运行时来完成此操作。您可以获取对象的类引用,然后是它的父类(super class),然后是它的 父类(super class),然后从中获取您想要的方法实现。然后用你的对象调用它。此代码是读者的练习。 :) Here are the docs .

关于iphone - 如何调用祖 parent 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3701594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com