gpt4 book ai didi

Swift - 类方法中的 self.init() 未创建正确的类型

转载 作者:行者123 更新时间:2023-11-30 11:07:11 26 4
gpt4 key购买 nike

我有一个类层次结构,其中 ClassB继承自ClassA

静态变量solitaire定义于 ClassA

static var solitaire: ClassA!

类函数createdSolitaire()定义于 ClassA

class func createSolitaire() {

solitaire = self.init()
}

当我打电话ClassB.createSolitaire()时,变量solitaire设置为 ClassA 的实例,不是ClassB

我在这里做错了什么?谢谢。

代码:

class ClassA {

static var shared: ClassA!

class func createSolitaire() {
shared = self.init()
}
}

class ClassB : ClassA {
}

要重现该问题,请从任意位置调用 ClassB.createSolitaire()...例如,viewController 中的 PlayGround 或 viewLoaded 方法。

最佳答案

感谢 Martin R 的评论,我找到了修复方法:

我只是用“required”向 ClassA 添加了一个空的 init() 方法,现在 self.init() 返回正确的对象(在我的示例中是 ClassB 的实例,而不是 ClassA)。修复它有点令人不安,但无论如何。

需要初始化() {}

关于Swift - 类方法中的 self.init() 未创建正确的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52579532/

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