gpt4 book ai didi

Swift:在协议(protocol)扩展中初始化对象后调用一些方法

转载 作者:行者123 更新时间:2023-11-28 08:42:40 24 4
gpt4 key购买 nike

假设我有结构:

class A: UIViewController {

}

class C {
}

class B: A, P {
typealias T = C
}

protocol P: class {
typealias T
}

extension P {
func initP() {
print("test")
}
}

是否可以在不修改 B 的情况下调用 initP?其他任何内容都可以修改。我正在尝试创建类似通用抽象类的东西。系统(A,P)是基础。 (B, C) -- 具体实现。方法 initP 对于所有实现都是完全相同的。这就是为什么我试图避免在植入中调用它。另一方面,它使用 P 中的方法和类型。这就是为什么我不能简单地在 A 中调用它。首先,我尝试使 A 成为通用的,但在这种情况下,如果 B 作为 Storyboard 中的场景类传递,则 App 会在运行时崩溃

最佳答案

为什么这对你不起作用:

extension P {
init() { // Or initWithCoder since it's a ViewController?
print("test")
self.init()
}
}

关于Swift:在协议(protocol)扩展中初始化对象后调用一些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36071868/

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