【发布时间】:2020-08-30 09:59:59
【问题描述】:
我遇到了一个我不明白的问题。
在我的项目中,我想使用一些自定义方法(例如来自服务器的更新)制作一组元素。但是当我尝试将所有这些集合分组到一个数组中时,我收到一个错误:“无法将 MyCollection<someElement> 类型的值转换为预期的参数类型 MyCollection<Any>”
我不明白的是,与 Array 相同的代码正在工作...... Array 不是集合?
// My collection which would contain an update method
class MyCollection<Element> {
var object:Element? = nil
}
let x = MyCollection<Int>()
var list = [MyCollection<Any>]()
list.append(x) //Cannot convert value of type 'MyCollection<In>' to expected argument type 'MyCollection<Any>'
let a = Array<Int>()
var lista = [Array<Any>]()
lista.append(a) //Doesn't get error at all...
我知道我可以使用特定类型的数组来做到这一点,但是通过将所有 MyCollection 分组到一个数组中,我希望使用如下代码:
func update() {
for e in list { // array of MyCollection<Any>
e.update()
}
}
提前感谢您的帮助;)
【问题讨论】:
标签: swift generics collections typing