【发布时间】:2017-01-07 21:52:19
【问题描述】:
在 Swift 2.2 中,我有以下类:
protocol Base {}
class FirstImpl: Base {}
class SecondImpl: Base {}
class Container {
private var typeNames = Set<String>()
init(_ types: Base.Type...) {
for type in types {
typeNames.insert(String(type))
}
}
}
如果我只向容器添加一个类类型,那么它编译得很好:
let c = Container(FirstImpl)
但是如果我开始添加更多的类类型,那么它将无法编译:
let c = Container(FirstImpl, SecondImpl)
构建错误是:
无法将类型“(FirstImpl,SecondImpl).Type”的值转换为预期的参数类型“Base.Type”
这是 Swift 编译器的限制还是我做错了什么?
【问题讨论】:
标签: swift initialization variadic