【发布时间】:2021-06-08 17:59:01
【问题描述】:
我知道实现抽象 iOS 没有直接的方法,下面是我的做法。
protocol ParentClass: class {
func doSomething()
func doSomething1()
}
class ChildClassA: ParentClass {
func doSomething() -> Bool {
}
func doSomething1() -> Bool {
}
}
class ChildClassB: ParentClass {
func doSomething() -> Bool {
}
func doSomething1() -> Bool {
}
}
如何在 ParentClass 中声明初始化器?我想添加一个初始化器,它将为 ChildClassA 或 ChildClassB 创建对象。我基本上想要的是:如果设置了 Flag,则从 ChildClassA 执行 doSomething() 或从 ChildClassB 执行 doSomething()。
【问题讨论】:
-
目前还不清楚您要达到的目标。但是,您不能从超类或协议调用子类实现。父级无法知道这些实现类型。
-
那我的设计很可能是错误的。我想要的是一个具有 func 存根/声明的类/协议,并且这些 func 的实现将在其他类中。编辑:对不起,我试图在这里添加一个示例,但由于字符限制而无法添加。将更新我的问题。
-
“我想要的是一个具有 func 存根/声明的类/协议,并且这些 func 的实现将在其他类中”不清楚在这种情况下协议的用途。这听起来像是一个带有抽象方法的超类,必须被子类覆盖。例如,请参阅stackoverflow.com/questions/63831683/…。但是,您在问题中所说的“声明初始化程序”与您代码中的任何内容完全不一致,因此完全不清楚实际目标是什么。
-
另外,这根本不是“抽象”通常的意思,这使得问题更加不透明。