gpt4 book ai didi

Swift - 泛型无法附加到父类(super class)数组

转载 作者:搜寻专家 更新时间:2023-11-01 07:15:00 25 4
gpt4 key购买 nike

好的,问题来了:

假设我们有一个包含子类数组的父类

class ParentClass {

var list: [ChildClass<UITableViewCell>] = []

func append<T>(cell: T) where T: UITableViewCell {
let child = ChildClass<T>()
list.append(child)
}

}

和子类

class ChildClass<T> where T: UITableViewCell {

var obj: T!

}

这两个类都是通用的,Type(T) 始终是 UITableViewCell 类型

现在,如果您尝试构建它,您将收到此错误:

Cannot convert value of type ChildClass< T > to expected argument type ChildClass< UITableViewCell >

但是如果T是UITableViewCell的子类,它不应该能够转换T吗???
提前致谢

最佳答案

ChildClass<T>不是 ChildClass<UITableViewCell> 的子类, 即使TUITableViewCell 的子类.

我在这里的回答提供了一个例子,说明如果建立这样的协方差会出现什么问题:https://stackoverflow.com/a/42615736/3141234

关于Swift - 泛型无法附加到父类(super class)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42619624/

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