gpt4 book ai didi

ios - Objective C Delegate - 查找父类的名称

转载 作者:行者123 更新时间:2023-11-28 19:05:03 25 4
gpt4 key购买 nike

我正在编写 10 个单独的实用程序类来从服务器填充查找表,每个查找表一个实用程序类。

我注意到所有 10 个都非常相似,我相信我可以创建一个抽象类来完成 90% 的工作,并且当我从子类实例化它时我可以将参数传递给它。

问题是,当父类(super class)想要引发委托(delegate)事件时,无论它是在哪个子类中继承的,它都将具有相同的名称,因此无论拥有该子类的类或 Controller 都需要一种方法来识别父类(super class)正在触发哪个子类来自的委托(delegate)。

有什么方法可以告诉哪个子类拥有从中触发委托(delegate)的父类(super class)?

例如我有一个名为“动物”的父类(super class),它有一个委托(delegate)事件“动物想要食物”子类 'dog' 和 'cat' 都继承自 'Animal'一个名为“farmyard”的 NSObject 实例化了“dog”和“cat”类,并使自己成为“dog”和“cat”的委托(delegate)。当“dog”继承的“Animal”实例触发“Animal wants food”时,“farmyard”对象将接收到它。 - “农场”如何知道触发“动物想要食物”委托(delegate)事件的是“狗”还是“猫”?

最佳答案

因为委托(delegate)方法应该将对象作为参数传递:

- (void)animalWantsFood:(Animal *)animal

然后接收者可以检查动物

查看整个 Apple 代码中提供的委托(delegate)方法,您将看到委托(delegate)模式的相同实现。

关于ios - Objective C Delegate - 查找父类的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21217445/

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