gpt4 book ai didi

swift - 如何在 Swift2 中使用泛型类型

转载 作者:行者123 更新时间:2023-11-30 13:47:57 25 4
gpt4 key购买 nike

我对swift中的泛型类型不熟悉,然后我尝试学习和练习,但在编译器中遇到了错误。看一下 ObjectA 类中的 addNewType() 方法。有人可以帮助我吗?谢谢!

class TypeA: NSObject {

override init() {
print("typeA")
}
}

class ObjectA<T: TypeA>: NSObject {

var type = [T]()

init(type:T) {
self.type.append(type)
}

func addNewType() {
let newType = TypeA()
self.type.append(newType) <-- Cannot invoke "append" with an argument list of type '(TypeA)'
}
}

最佳答案

typeT 类型的数组。这意味着所有元素都必须是 T 类型。在 addNewType() 方法中,您尝试将 TypeA 类型的元素附加到 T 类型的数组中。这是类型不匹配。您只能将 T 放入数组中,但您正在尝试添加 TypeA。这会导致错误。

如果您想让 TypeA 也放入数组中,请将其定义为 var type = [TypeA]()。由于 T 被定义为 TypeA 的子类,因此您可以将 TTypeA 的实例放入数组。

关于swift - 如何在 Swift2 中使用泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689916/

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