В Swift 2.2, у меня есть следующие классы: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 компилятором или я делаю что-то не так?