У меня есть протокол под названием Composite
.
Этот протокол имеет массив composites: [Composite]
У меня также есть общий подкласс GenericSubclass<T>: Composite
При повторении по массиву лучшее, что я могу придумать, выглядит так:
for item in composites {
if let item = item as? GenericSubclass<A> {
let sc = SomeOtherClass<A>
} else if let item = item as? GenericSubclass<B> {
let sc = SomeOtherClass<B>
} //and so on...
}
Есть ли способ удержать GenericSubclass
без указания Generic? В моем случае использования мне совершенно не нужно знать о T. Мне просто нужно создать экземпляр другого класса с тем же родовым типом.
Любая помощь очень ценится.